top
Loading...
6.2.復制實施概述
6.2. 復制實施概述

MySQL復制基于主服務器在二進制日志中跟蹤所有對數據庫的更改(更新、刪除等等)。因此,要進行復制,必須在主服務器上啟用二進制日志。參見5.11.3節,“二進制日志”。

每個從服務器從主服務器接收主服務器已經記錄到其二進制日志的保存的更新,以便從服務器可以對其數據拷貝執行相同的更新。

認識到二進制日志只是一個從啟用二進制日志的固定時間點開始的記錄非常重要。任何設置的從服務器需要主服務器上的在主服務器上啟用二進制日志時的數據庫拷貝。如果啟動從服務器時,其數據庫與主服務器上的啟動二進制日志時的狀態不相同,從服務器很可能失敗。

將主服務器的數據拷貝到從服務器的一個途徑是使用LOAD DATA FROM MASTER語句。請注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存儲引擎的主服務器上工作。并且,該語句將獲得全局讀鎖定,因此當表正復制到從服務器上時,不可能在主服務器上進行更新。當我們執行表的無鎖熱備份時,則不再需要全局讀鎖定。

由于這些限制,我們建議只有主服務器上的數據集相對較小,或者主服務器上延遲讀鎖定已經被接受,才可以使用LOAD DATA FROM MASTER。而LOAD DATA FROM MASTER的實際速度隨系統的不同而不同,對于執行時間,最好的規則是每1MB的數據用1秒鐘。這是一個粗略的估計,但你會發現如果主服務器和從服務器的性能上等價于700MHz Pentium CPU,通過100Mbps的網絡進行連接,則該估計相當準確。

從服務器設置為復制主服務器的數據后,它連接主服務器并等待更新過程。如果主服務器失敗,或者從服務器失去與主服務器之間的連接,從服務器保持定期嘗試連接,直到它能夠繼續幀聽更新。由--master-connect-retry選項控制重試間隔。 默認為60秒。

每個從服務器跟蹤復制時間。主服務器不知道有多少個從服務器或在某一時刻有哪些被更新了。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/replication.html
北斗有巢氏 有巢氏北斗