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秒之間 所有在數據庫上執行的操作,並將其在目標庫上重放。

 

(完畢)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM