使用 mysqldump 实现 MySQL 5.7 基于时间点的恢复

创建测试数据




全备数据库

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --triggers --routines --events --set-gtid-purged=off> backup.sql

再新增测试数据

删除表中所有数据

确认最近一次备份后的二进制日志保存文件

确认删除数据的时间点

mysqlbinlog --base64-output=decode-rows -v mysql01-bin.000011 > result.sql
vim result.sql 


还原数据库

mysql < backup.sql 

检查表中的数据,说明还原成功

恢复删除的数据

mysqlbinlog --stop-datetime="2018-09-06 16:42:36" --skip-gtids mysql01-bin.000011 | mysql

检查表中的数据,说明已经恢复成功