【mysql】记录一次truncate表后利用binlog恢复情况

今日午休醒来,有点懵,测试环境truncate表时,清错了一张配置表,需要恢复。

但是该机器上没有备份机制,开发环境到是有,但极有可能数据不同步。

然后开始binlog按时间,与表名,确定了binlog的 --stop-position,但是没有用,因为binlog都是配合备份数据弄的,binlog只是导出执行日志,在当前状态下,再执行一遍,因为没有数据,都是update操作 依然还是空数据。

如果配合备份数据,恢复到之前某时刻状态,再用binlog将那个时刻到现在truncate之前操作再执行一遍,就是比较完美的思路。

 

后面多方查找,

好在同事之前做代运营,copy了一份环境,日期比较近,就直接先表数据弄好,再将binlog较长时间的操作导出执行,覆盖时间段内的操作。

 

binlog给人查看的文件导出命令(用于查找truncate的position数字):

mysqlbinlog --no-defaults --skip-gtids --start-datetime='2020-08-21 13:30:00' --stop-datetime='2020-08-21 15:00:00' --database=sm_xxx --base64-output=decode-rows -v /binlog_file_path/binlog.0000000x |grep -i -A 5 -B 5 truncate > /tmp/binlog0xx_trun.log

--no-defaults 用于解决

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值