MYSQL数据BINLOG恢复

本文详细介绍了数据库恢复过程,包括使用备份恢复、定位日志位置并执行恢复操作。重点阐述了通过强制刷新日志、恢复特定日志段落等步骤实现数据恢复的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

truncate table 恢复:
1、测试数据
mysql> select count(*) from o_order;
+----------+
| count(*) |
+----------+
|       34 |
+----------+
1 row in set (0.00 sec)


2、truncate table 
mysql> truncate table o_order;
Query OK, 0 rows affected (0.05 sec)


mysql> select count(*) from o_order;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)


3、强制刷新日志
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)


mysql> show master status;
+---------------------+----------+------------------+------------------+-------------------+
| File                | Position | Binlog_Do_DB     | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+------------------+------------------+-------------------+
| mysql_binlog.000009 |      120 | history,realtime | mysql            |                   |
+---------------------+----------+------------------+------------------+-------------------+
1 row in set (0.00 sec)


4.先从备份恢复:
mysql> \. his.sql
注:如无备份数据,则到逐个恢复日志


5、定位log位置
'/*!*/;
# at 1607
#141128  0:54:29 server id 1  end_log_pos 1638 CRC32 0x69cfa1df         Xid = 1734
COMMIT/*!*/;
# at 1638
#141128  1:06:23 server id 1  end_log_pos 1730 CRC32 0xb0178972         Query   thread_id=34    exec_time=1     error_code=0
use `history`/*!*/;
SET TIMESTAMP=1417107983/*!*/;
truncate table o_order
6、恢复数据
[root@db01 ~]# mysqlbinlog -d history --stop-position=1638 /data/mysql/mysql_binlog.000008 |mysql


7、检查数据
mysql> select count(*) from o_order;
+----------+
| count(*) |
+----------+
|       34 |
+----------+
1 row in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值