本節描述如何設定 MySQL 伺服器以使用基於二進制日誌檔案位置的複製。設定複製的方法有很多種,而確切使用哪種方法取決於您如何設定複製,以及來源資料庫中是否已存在要複製的資料。
若要部署多個 MySQL 執行個體,您可以使用 InnoDB 集群,這可讓您在 MySQL Shell 中輕鬆管理一組 MySQL 伺服器執行個體。InnoDB 集群將 MySQL 群組複製包裝在程式化環境中,讓您能夠輕鬆部署 MySQL 執行個體叢集以達到高可用性。此外,InnoDB 集群與 MySQL Router 無縫介接,這可讓您的應用程式連線至叢集,而無需撰寫自己的容錯移轉程序。不過,對於不需要高可用性的類似使用案例,您可以使用 InnoDB ReplicaSet。MySQL Shell 的安裝說明可以在這裡找到。
有些一般任務是所有設定通用的
在來源上,您必須確保已啟用二進制日誌,並設定唯一的伺服器 ID。這可能需要重新啟動伺服器。請參閱第 19.1.2.1 節,「設定複製來源組態」。
在您想要連線至來源的每個複本上,您必須設定一個唯一的伺服器 ID。這可能需要重新啟動伺服器。請參閱第 19.1.2.2 節,「設定複本組態」。
您可以選擇為您的複本建立一個獨立的使用者,以便在讀取二進位日誌進行複寫時,用於與來源進行身分驗證。請參閱第 19.1.2.3 節,「建立用於複寫的使用者」。
在建立資料快照或開始複寫程序之前,您應該在來源端記錄二進位日誌中的目前位置。當您設定複本時,需要此資訊,以便複本知道從二進位日誌中的哪個位置開始執行事件。請參閱第 19.1.2.4 節,「取得複寫來源二進位日誌座標」。
如果您在來源上已經有資料,並想要使用它來同步複本,您需要建立一個資料快照,將資料複製到複本。您使用的儲存引擎會影響您建立快照的方式。當您使用
MyISAM
時,您必須停止在來源上處理語句以取得讀取鎖定,然後取得其目前的二進位日誌座標並轉儲其資料,才能允許來源繼續執行語句。如果您不停止執行語句,資料轉儲和來源狀態資訊將會不匹配,導致複本上的資料庫不一致或損壞。有關複寫MyISAM
來源的更多資訊,請參閱第 19.1.2.4 節,「取得複寫來源二進位日誌座標」。如果您使用InnoDB
,則不需要讀取鎖定,而且足夠長時間傳輸資料快照的交易就已足夠。如需更多資訊,請參閱第 17.19 節,「InnoDB 和 MySQL 複寫」。設定複本以使用連接到來源的設定,例如主機名稱、登入憑證以及二進位日誌檔名和位置。請參閱第 19.1.2.7 節,「在複本上設定來源組態」。
在來源和複本上實施針對您系統適用的複寫特定安全措施。請參閱第 19.3 節,「複寫安全性」。
設定過程中的某些步驟需要 SUPER
權限。如果您沒有此權限,可能無法啟用複寫。
在設定基本選項後,請選擇您的情境
若要為不包含任何資料的來源和複本的全新安裝設定複寫,請參閱第 19.1.2.6.1 節,「使用新的來源和複本設定複寫」。
若要使用現有 MySQL 伺服器的資料設定新來源的複寫,請參閱第 19.1.2.6.2 節,「使用現有資料設定複寫」。
若要將複本新增至現有的複寫環境,請參閱第 19.1.2.8 節,「將複本新增至複寫環境」。
在管理 MySQL 複寫伺服器之前,請閱讀本章的全部內容,並嘗試第 15.4.1 節,「用於控制來源伺服器的 SQL 語句」和第 15.4.2 節,「用於控制複本伺服器的 SQL 語句」中提到的所有語句。同時熟悉第 19.1.6 節,「複寫和二進位記錄選項與變數」中描述的複寫啟動選項。