事件:
在生产库执行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
找到对应表名的操作记录,如下图: