MySQL複製FAQ

mi_zy發表於2012-03-04

Q:從伺服器需要始終連線到主伺服器嗎?

A:不,不需要。從伺服器可以當機或斷開連線幾個小時甚至幾天,重新連線後獲得更新資訊。例如,你可以在透過撥號的連結上設定主伺服器/從伺服器關係,其中只是偶爾短時間內進行連線。這意味著,在任何給定時間,從伺服器不能保證與主伺服器同步除非你執行某些特殊的方法。將來,我們將使用選項來阻塞主伺服器直到有一個從伺服器同步。

Q:當設定雙向複製時我應該知道發出那些語句?

AMySQL複製目前不支援主伺服器和從伺服器之間的任何鎖定協議來保證分散式(跨伺服器)更新的原子性。換句話說,這樣做是可能的:客戶A根據協作-主伺服器1更新,同時,在它傳給協作-主伺服器2之前,客戶B能夠根據協作-主伺服器2更新,這樣客戶A的更新與它在協作-主伺服器1的更新不同。這樣,當客戶A根據協作-主伺服器2更新時,它產生的表與在協作-主伺服器1上的不同,即使所有根據協作-主伺服器2的更新已經傳過來。這意味著,在雙向複製關係中,你不應該把兩個伺服器串連在一起,除非你確信任何順序的更新是安全的,或者除非你在客戶端程式碼中注意怎樣避免更新順序錯誤。

你還必須認識到從更新角度,雙向複製實際上並不能顯著地提高效能(或者根本不能提高效能)。兩個伺服器都需要做相同數量的更新,如同在一個伺服器做的那樣。唯一的差別是鎖競爭要少,這因為源於另一個伺服器的更新在一個從執行緒中序列化。即使這個益處可能被網路延遲抵消。

Q:如果主伺服器正在執行並且不想停止主伺服器,怎樣配置一個從伺服器?

A:有多種方法。如果你在某時間點做過主伺服器備份並且記錄了相應快照的二進位制日誌名和偏移量(透過SHOW MASTER STATUS命令的輸出),採用下面的步驟:

1.    確保從伺服器分配了一個唯一的伺服器ID號。

2.    在從伺服器上執行下面的語句,為每個選項填入適當的值:mysql> CHANGE MASTER TO

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-717662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章