【mysql使用binglog日志恢复误删除数据】

文章详细介绍了如何使用MySQL的binlog来恢复删除的数据,包括定位binlog文件、设置时间范围导出SQL、提取删除语句、转换为INSERT语句,以及在两个事务中执行恢复操作的过程。
摘要由CSDN通过智能技术生成

1、先找到binlog存放的目录 show variables like 'log_%'; ,可以查看到服务器存放/hctx/mysql-5.7.34/data/

2、执行mysqlbinlog 命令 先用时间进行导出(注意内网服务器时间可能与实际时间有偏差)

mysqlbinlog --base64-output=decode-rows -v --database=sc_veterans --start-datetime="2023-04-14 16:00:00" --stop-datetime="2023-04-14 17:00:00" /hctx/mysql-5.7.34/data/master-bin.000120 > test1.sql

 3、在导出的sql文件中找到delete语句的position 和结束position ,导出指定的删除sql

 mysqlbinlog --base64-output=decode-rows -v --database=sc_veterans  --start-position=376 --stop-position=722 /hctx/mysql-5.7.34/data/master-bin.000120 > testDELETE.sql

4、替换为insert 输出到sql文件 。

cat testDELETE.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql

 5、开启2个事务,一个事务查询当前数据,一个事务执行mysqllogOK.sql,执行验证完成后 commit

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值