通過 mysqldump 完全恢復 MySQL 5.7 數據庫
阿新 • • 發佈:2018-09-06
dump databases mysql 數據庫 日誌文件 trigger ase 還原 tex 51cto 1、備份前創建表和測試數據
或者在還原前設置會話禁止寫入二進制日誌 set sql_log_bin=0。
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());
2、查看當前的二進制日誌
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 參數,備份後的二進制日誌保存在新的文件中
5、新增數據庫到表 t1 中
6、讀取二進制日誌文件,並導出到文件中,由於開啟了gtid,需要添加參數 --skip-gtids
mysqlbinlog --skip-gtids mysql01-bin.000008 > bin.sql
7、還原數據並查看表 t1 的記錄
mysql> source backup.sql;
8、執行從二進制日誌導出的文件,並查看結果
mysql> source bin.sql;
9、數據得到完全恢復
註意:要先讀取讀取二進制日誌的內容,再還原數據庫,因為還原數據庫會產生二進制日誌。
通過 mysqldump 完全恢復 MySQL 5.7 數據庫