Mysql-Replication

來自轉儲的 MySQL 從伺服器

  • June 9, 2012

我已經從現在充當主機的實時機器創建了一個從伺服器。我使用以下過程來創建它:

mysqldump --opt -Q -B --master-data=2 --all-databases > dump.sql
  • 然後我在新機器上導入了這個轉儲,應用了“CHANGE MASTER TO…”指令以及來自轉儲的日誌文件/位置。

請注意,我有大約 8000 個數據庫,並且在轉儲執行時我沒有停止 master。

複製工作正常,但這是創建從伺服器的正確方法嗎?我計劃將此從屬設備提升為主設備(不同的位置),因此我想確保伺服器之間存在 100% 的數據一致性。

我發現這篇文章說:

幼稚的做法就是使用mysqldump導出master的副本,然後載入到slave伺服器上。如果您只有一個數據庫,則此方法有效。使用多個數據庫,您最終會得到不一致的數據。Mysqldump 將在不同的事務中從伺服器上的每個數據庫中轉儲數據。這意味著您的導出將包含來自每個數據庫的不同時間點的數據。

謝謝

您使用的方法(特別是--master-data=2選項)應該足以讓您獲得一致的轉儲,因為--master-data這意味著--lock-all-tables(以及由此產生的對數據庫性能的隱含攻擊)。應遵守mysqldump(1) 聯機幫助頁中為該選項指定的警告。--lock-all-tables

我建議您引用的文章要麼是在可用之前編寫的--lock-all-tables(或者是隱式啟動--master-data),要麼是由沒有能力或不願意閱讀文件的人編寫的。您可能希望查詢作者以確定是哪種情況。

引用自:https://serverfault.com/questions/397126