文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國 Letter) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  使用非同步連線容錯切換來源和複本

19.4.9 使用非同步連線容錯切換來源和複本

您可以使用非同步連線容錯機制,在複本與其來源之間的現有連線失敗後,自動建立與新來源的非同步 (來源到複本) 複製連線。非同步連線容錯機制可用於保持複本與多個共用資料的 MySQL 伺服器或伺服器群組同步。潛在來源伺服器的清單儲存在複本上,並且在連線失敗時,會根據您設定的加權優先順序從清單中選取新的來源。

非同步連線容錯移轉機制也支援群組複寫拓撲,透過自動監控群組成員變更並區分主要和次要伺服器。當您將群組成員新增至來源清單並將其定義為受管理群組的一部分時,非同步連線容錯移轉機制會更新來源清單,使其與成員變更保持一致,並在群組成員加入或離開時自動新增和移除。僅使用多數在線的群組成員進行連線並獲取狀態。受管理群組的最後一個剩餘成員即使離開群組也不會自動移除,以便保留受管理群組的組態。但是,如果不再需要受管理群組,您可以手動刪除它。

如果目前的接收者(群組的主要伺服器)發生故障,非同步連線容錯移轉機制還能讓屬於受管理複寫群組一部分的複本自動重新連線至傳送者。此功能適用於以單一主要模式設定的群組複寫,在此模式中,群組的主要伺服器是一個使用此機制的複寫通道的複本。此功能旨在使傳送者群組和接收者群組保持同步,即使某些成員暫時不可用。它還使接收者群組與一個或多個不屬於受管理群組的傳送者保持同步。不屬於複寫群組的複本無法使用此功能。

使用非同步連線容錯移轉機制的要求如下:

  • 來源和複本上必須使用 GTID (gtid_mode=ON),並且複本上必須啟用 CHANGE REPLICATION SOURCE TO 陳述式的 SOURCE_AUTO_POSITION 選項,以便將 GTID 自動定位用於與來源的連線。

  • 通道的來源清單中,所有來源伺服器上都必須存在相同的複寫使用者帳號和密碼。此帳號用於與每個來源的連線。您可以為不同的通道設定不同的帳號。

  • 必須向複寫使用者帳號授予效能架構表格的 SELECT 權限,例如,透過發出 GRANT SELECT ON performance_schema.* TO 'repl_user';

  • 用於啟動複寫的陳述式上不能指定複寫使用者帳號和密碼,因為它們需要在自動重新啟動時用於連線到替代來源。它們必須使用複本上的 CHANGE REPLICATION SOURCE TO 陳述式為通道設定,並記錄在複寫中繼資料儲存庫中。

  • 如果使用非同步連線容錯移轉機制的通道位於群組複寫單一主要模式群組的主要伺服器上,則預設情況下也會啟用複本之間的非同步連線容錯移轉。在這種情況下,必須在複寫群組中的所有次要伺服器以及任何新加入的成員上設定複寫通道以及通道的複寫使用者帳號和密碼。如果使用 MySQL 的複製功能佈建新伺服器,則這一切都會自動發生。

    重要事項

    如果您不希望在這種情況下在複本之間發生非同步連線容錯移轉,請使用 group_replication_disable_member_action 函數,透過禁用群組的成員動作 mysql_start_failover_channels_if_primary 來停用它。當此功能停用時,您不需要在次要群組成員上設定複寫通道,但如果主要伺服器離線或處於錯誤狀態,則通道的複寫會停止。

MySQL InnoDB ClusterSet 可透過將主要 InnoDB Cluster 與其在不同位置(例如不同的資料中心)的一個或多個複本連結,為 InnoDB Cluster 部署提供災害容錯能力。請考慮使用此解決方案來簡化新的多群組部署的設定,以進行複寫、容錯移轉和災害復原。您可以將現有的群組複寫部署採用為 InnoDB Cluster。

InnoDB ClusterSet 和 InnoDB Cluster 旨在抽象化和簡化設定、管理、監控、恢復和修復複寫群組的程序。InnoDB ClusterSet 使用專用的 ClusterSet 複寫通道自動管理從主要叢集到複本叢集的複寫。如果主要叢集無法正常運作,您可以使用管理員命令來觸發群組之間的受控切換或緊急容錯移轉。在初始設定後,當需求發生變化時,可以輕鬆地將伺服器和群組新增至 InnoDB ClusterSet 部署或從中移除。如需更多資訊,請參閱MySQL InnoDB ClusterSet