試驗環境:
主庫 192.168.3.202
備庫 192.168.3.203
開啓了GTID模式。
假如從庫和主庫差異較大,想要根據主庫的備份恢復從庫。
需要做如下步驟。
一 備份主庫
mysqldump -u root -p --single-transaction --all-databases --master-data=2 > AllDB.bak
#檢查備份文件中是否包含SET @@GLOBAL.GTID_PURGED=……內容:
cat 備份文件 | grep 'GTID_PURGE'
scp AllDB.bak 192.168.3.203:/download/
二 在從庫上恢復數據
2.1 關閉主從複製
stop slave;
2.2 reset master清空@@GLOBAL.GTID_PURGED
否則會導入數據的時候會報錯:
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
2.2.1 先記錄下相關信息(show master status)以備後患
2.2.2 reset master
reset master;
2.3 恢復數據
mysql -u root -p < AllDB.bak
2.4 啓動主從複製
START SLAVE;
2.5 檢查主從複製是否正常
show slave status