1.生成需要修复的时间段的所有SQL操作:
sudo mysqlbinlog -d mydb_test --start-datetime="2017-02-23 04:10:00" --stop-datetime="2017-02-23 13:00:00" /data/mysql/log/mysql- bin.* > mydb_test.sql
2.去掉INSERT_ID设定,以免冲突:
sed -i -e "s%^SET INSERT_ID=%#SET INSERT_ID=%g" mydb_test.sql
3.导入恢复的数据mydb_test.sql(-v 查看回滚信息,-f 跳过错误)
mysql --host=xx.xx.xx.xx --port=3306 --user=xxxx --password=xxxxxx --comments --default-character-set=utf8 mydb_test -v -f < mydb_test.sql
本文介绍了一种通过 MySQL 的 binlog 日志进行数据回滚的方法。具体步骤包括使用 mysqlbinlog 工具生成指定时间段内的 SQL 操作脚本,通过 sed 命令去除可能引起冲突的 INSERT_ID 设置,最后利用 mysql 命令将生成的 SQL 脚本导入到目标数据库中。
3421

被折叠的 条评论
为什么被折叠?



