本節說明如何設定 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 節,「複製和二進制日誌選項與變數」中所述的複製啟動選項。