2013-03-27 101 views
3

我最近需要執行一些數據庫重新同步操作,並且有一個問題關於(似乎是)在將數據庫轉儲到master上之前發佈'RESET MASTER'的常見做法。爲什麼在重新啓動mysql slave時發出'reset master'

幾乎所有我發現圍繞這個過程的文檔都有一個'RESET MASTER',它在從主服務器上轉儲數據庫之前。

例如:https://stackoverflow.com/a/3229580/1570785

在生產環境中,然而,這似乎是適得其反,主要是因爲在「重置主」命令將清除現有的二進制日誌。因此,如果複製中斷時主服務器出現問題,最終會出現不一致/損壞的主服務器不同步從服務器。

鑑於此過程需要首先執行(即,mysql複製出現問題),因此僅僅因爲刪除了binlog(可能用於從完整災難中恢復)似乎是不明智的。奴隸需要重新啓動。

我真的在問:我錯過了什麼 - 是否有正當的理由在從主服務器轉儲之前執行'RESET MASTER'?

回答

0

這不是必需的。 如果您使用mysqldump創建轉儲,請添加以下選項: --single-transaction - 不鎖定innodb表並創建一致的快照。 --master-data - 要添加主站的二進制日誌位置,該從站應該開始複製。