實際項目中我們已經做了每日定時備份,這可以還原數據到備份時的狀態。但是如果我們想要還原數據到任意兩次備份中間的任意時間點,單純使用備份文件就無法做到了,這需要借助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秒之間 所有在數據庫上執行的操作,並將其在目標庫上重放。
(完畢)
