恢复误删的DB table数据

由于一时手误输入了 DELETE FROM TABLE WHERE age REGEXP '\d';导致这个表的数据被删除

解决方法:

登录mysql,查看目前的binlog文件

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000016 |    16895 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+

将日志复制到.sql文件    添加--base64-output=decode-rows 参数导出的sql文件里不包含数据部分(即insert,delete,update),主要是方便分析,实际导出的 sql是不能加这个参数的

mysqlbinlog --no-defaults --base64-output=decode-rows binlog.000016 > 20190322.sql

 # at 12731
 823 #190321 18:54:17 server id 1  end_log_pos 12810 CRC32 0xa49cda19        Anonymous_GTID  last_committed=47       sequence_number=48      rb     r_only=yes    original_committed_timestamp=1553165658210230   immediate_commit_timestamp=1553165658210230     transaction_length=333

将日志复制到.sql文件

mysqlbinlog --no-defaults binlog.000016 > 20190322.sql

从at 12731开始恢复

mysqlbinlog --start-position=219 --stop-position=12731 binlog.000016 > ./recovery-restore.sql

 

mysql -uroot -p gc < recovery-restore.sql

 

转载于:https://www.cnblogs.com/jiangfeilong/p/10579609.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值