通過 mysqldump 完全恢復 MySQL 5.7 數據庫

1、備份前創建表和測試數據

mysql> create table t1 (tm datetime);
mysql> insert into t1 values(now());
mysql> insert into t1 values(now());
mysql> insert into t1 values(now());
mysql> insert into t1 values(now());
mysql> insert into t1 values(now());

通過 mysqldump 完全恢復 MySQL 5.7 數據庫
2、查看當前的二進制日誌
通過 mysqldump 完全恢復 MySQL 5.7 數據庫
3、全備 MySQL 數據庫

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --triggers --routines --events --set-gtid-purged=off> backup.sql

4、由於 mysqldump 添加了 --flush-logs 參數,備份後的二進制日誌保存在新的文件中
通過 mysqldump 完全恢復 MySQL 5.7 數據庫
5、新增數據庫到表 t1 中
通過 mysqldump 完全恢復 MySQL 5.7 數據庫
6、讀取二進制日誌文件,並導出到文件中,由於開啓了gtid,需要添加參數 --skip-gtids,如果不添加,由於 MySQL 中已經用了 SQL的執行記錄,提取的 SQL 無法再次執行。

mysqlbinlog --skip-gtids mysql01-bin.000008 > bin.sql

7、還原數據並查看錶 t1 的記錄

mysql> source backup.sql;

通過 mysqldump 完全恢復 MySQL 5.7 數據庫
8、執行從二進制日誌導出的文件,並查看結果

mysql> source bin.sql;

通過 mysqldump 完全恢復 MySQL 5.7 數據庫
9、數據得到完全恢復

注意:要先讀取讀取二進制日誌的內容,再還原數據庫,因爲還原數據庫會產生二進制日誌。
或者在還原前設置會話禁止寫入二進制日誌 set sql_log_bin=0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章