Mysql-Replication
來自轉儲的 MySQL 從伺服器
我已經從現在充當主機的實時機器創建了一個從伺服器。我使用以下過程來創建它:
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
),要麼是由沒有能力或不願意閱讀文件的人編寫的。您可能希望查詢作者以確定是哪種情況。