MySQL还原数据到任意时间点

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

 

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

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

2、从binlog中筛选时间段内的日志,在新还原的数据上重放日志

 

操作:

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点48分17秒之间 所有在数据库上执行的操作,并将其在目标库上重放。

 

(完毕)

posted @ 2022-02-23 14:41  剑握在手  阅读(2039)  评论(0编辑  收藏  举报
返回顶部↑