如果你的資料庫可以暫停,那麼把 mysqldump 回存時,如果有 slave,建議先停掉 slave,然後把回存的備份,同時在 master 和 slave 回存,偶爾做一做,可以保證 slave 和 master 是同步的。
等到有一天,master 壞光光,得用 slave 上線時,你就會知道這件事情有多重要了。
接下來,在 master 回存時,可以暫時先把 log-bin 關掉,方法很簡單:
db2# ( echo "SET SESSION SQL_LOG_BIN=0;" ; cat db3_backup.2.sql ) | mysql -S /tmp/mysql.sock -pXXXXXX -A
這樣 master 就不會產生 log-bin 了。
然後 master 回存完畢,請將 master 的 mysql 先停掉,再重新啟動,這樣 master 會產生一個新的 log-bin,例如:
-rw-rw---- 1 mysql mysql 106 Jul 4 12:10 mysql-bin.000025
這樣的好處是,你就可以在 slave 用:
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000025', MASTER_LOG_POS=106;
讓 slave 從新開始的 log-bin 重新開始同步。