MySQL还原数据到任意时间点

实际项目中我们已经做了每日定时备份,这可以还原数据备份时的状态。但是如果我们想要还原数据到任意两次备份中间的任意时间点,单纯使用备份文件就无法做到了,这需要借助mysql的binlog。mysql据库

还原数据到任意时间点的主要思路:

1、通过备份文件还原数据

2、从binlo据库系统的核心是g中筛选时间段内数据恢复的日志,在新还原的数据上重放日志

操作:

1、还原备份文件(略)

2、筛选binlog时间段内日志并还原,示备份文件的扩展名通常为例:

#查看当前的binlog文件名
show master status;

#时段内日志筛选
mysqlbinlog --no-defaults --start-datetime='2022-02-21 23:30:00' --stop-datetime='2022-02-22 14:48:17' /datadir/mysql-bin.000020 > /tmp/binlog.sql

#还原
source /tmp/binlog.sql

以上命令,从binlog中获取了 2月21日23点30分 到 2月22日14点4据库系统概论第五版课后答案8分17秒之间 所有在数据库上执行的操作,并将其在目标库上重放。

(完毕)