mysql binlog update,Mysql通过binlog恢复误update的数据

事件:

在生产库执行update时只添加了STATUS(状态)条件,将所有状态为‘E’的数据全部改为了‘D’

思路:

结合原作者文章及实际情况,整理解决思路主要概况为:

1、使用show master status 命令查看当前binlog文件;

2、使用mysqlbinlog命令通过误操作时间及误操作表的条件,导出误操作记录文件;

3、查看导出的误操作记录文件,保留误操作sql语句;

4、处理导出的误操作语句文件,反向更新误操作的记录。

处理:

实际操作过程中遇到部分问题,与解决思路有部分偏差。实操过程记录:

在Navicat中执行show master status 命令,得到当前binlog文件为:mysql-bin.000006,position居然到了8亿多,说明很久没有替换新的binlog文件了;

顺便使用flush logs 命令生成新的binlog文件;

SSH连接数据库服务器,进入mysql的bin目录下

使用mysqlbinlog命令加入误操作时间和库名条件,导出对应.sql文件,命令如下:

./mysqlbinlog --start-datetime='2021-02-25 17:00:00' --database=[dbName] mysql-bin.000006 >a.sql

找到对应表名的操作记录,如下图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值