1. 程式人生 > >mysql增量備份斷點恢復

mysql增量備份斷點恢復

-- size 二進制日誌 生產環境 tput 創建 root 以及 正常

生產環境中在mysql中誤操作是非常正常的,所以就需要用到mysql的增量備份恢復。
增量備份是我們經常用到的,它可以指定某個誤操作的時間以及位置點進行數據恢復,更加準確的恢復我們想要還原的數據。
以下實驗為大家演示誤操作使用增量備份進行數據的恢復。

1、配置文件中開啟二進制日誌,並重啟mysql

技術分享圖片
技術分享圖片

2、創建測試數據庫,寫入內容

技術分享圖片

3、查看二進制日誌,截斷日誌,完成完全備份

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000001      //查看二進制日誌

技術分享圖片
技術分享圖片


mysqladmin -uroot -pabc123 flush-logs     //刷新截斷,形成一個新日誌
mysqldump -uroot -pabc123 school > /opt/school.sql   //完全備份school數據庫

技術分享圖片

4、查看新生成的二進制文件

技術分享圖片

5、添加兩條數據,再次查看新生成的二進制文件

技術分享圖片

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002   //再次查看新生成的二進制文件

技術分享圖片
技術分享圖片

6、模擬誤操作、查看二進制文件中誤操作的位置點時間點

技術分享圖片
技術分享圖片
技術分享圖片

7、刪除list表,先進行完全備份恢復

技術分享圖片

source /opt/school.sql   //進行完全備份恢復

技術分享圖片

再次查看表,完全備份的數據已恢復

技術分享圖片

8、再次截斷日誌,然後進行增量備份恢復

mysqladmin -uroot -pabc123 flush-logs     再次截斷日誌
(此處截斷日誌,是為了恢復正確數據的時候不會被前面的操作覆蓋)

技術分享圖片

恢復到誤操作前時間點前的操作
mysqlbinlog --no-defaults --stop-datetime=‘2018-09-03 22:18:29‘ /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123    

技術分享圖片

恢復添加jerry的那部分數據
mysqlbinlog --no-defaults --start-datetime=‘2018-09-03 22:19:27‘ /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123

可以查看到五條數據都已被恢復

技術分享圖片

mysql增量備份斷點恢復