文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 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.1 來源的非同步連線容錯移轉

若要啟用複寫通道的非同步連線容錯移轉,請在此通道的 CHANGE REPLICATION SOURCE TO 陳述式中設定 SOURCE_CONNECTION_AUTO_FAILOVER=1。通道必須使用 GTID 自動定位 (SOURCE_AUTO_POSITION = 1)。

重要事項

當現有連線到來源失敗時,複本會先根據 CHANGE REPLICATION SOURCE TOSOURCE_RETRY_COUNT 選項所指定的次數,重試相同的連線。嘗試之間的間隔由 SOURCE_CONNECT_RETRY 選項設定。當這些嘗試次數用盡時,非同步連線故障轉移機制會接管。請注意,這些選項的預設值是為連線到單一來源而設計的,這會讓複本在 60 天內重試相同的連線。為了確保非同步連線故障轉移機制能及時啟動,請將 SOURCE_RETRY_COUNTSOURCE_CONNECT_RETRY 設定為最小值,讓它們僅允許對同一來源進行幾次重試,以防連線失敗是由於暫時的網路中斷所致。適當的值為 SOURCE_RETRY_COUNT=3SOURCE_CONNECT_RETRY=10,這會讓複本以 10 秒的間隔重試連線 3 次。

您還需要為複寫通道設定來源列表,以指定可供故障轉移的來源。您可以使用 asynchronous_connection_failover_add_sourceasynchronous_connection_failover_delete_source 函式來新增和移除單一複寫來源伺服器,以設定和管理來源列表。若要新增和移除受管理伺服器群組,請改用 asynchronous_connection_failover_add_managedasynchronous_connection_failover_delete_managed 函式。

這些函式會命名相關的複寫通道,並指定要新增至或從通道來源列表刪除的 MySQL 執行個體的主機名稱、連接埠號碼、網路命名空間和加權優先順序(1-100,100 為最高優先順序)。對於受管理群組,您還需要指定受管理服務的類型(目前僅提供 Group Replication),以及受管理群組的識別碼(對於 Group Replication,這會是 group_replication_group_name 系統變數的值)。當您新增受管理群組時,您只需要新增一個群組成員,複本會自動從目前的群組成員資格中新增其餘成員。當您刪除受管理群組時,您會將整個群組一起刪除。

如果來源列表上的另一個可用伺服器具有更高的優先順序(權重)設定,非同步連線故障轉移機制也會將連線故障轉移。此功能可確保複本始終連線到最合適的來源伺服器,並且適用於受管理群組和單一(非受管理)伺服器。對於受管理群組,來源的權重會根據它是主要伺服器還是次要伺服器來分配。因此,假設您將受管理群組設定為將較高的權重賦予主要伺服器,而將較低的權重賦予次要伺服器,則當主要伺服器變更時,較高的權重會分配給新的主要伺服器,因此複本會將連線變更至該伺服器。如果目前連線的受管理來源伺服器離開受管理群組,或者不再屬於受管理群組中的多數,非同步連線故障轉移機制也會變更連線。

在故障轉移連線時,會選擇通道來源列表中列出的替代來源中具有最高優先順序(權重)設定的來源,以進行首次連線嘗試。複本會先檢查它是否可以連線到來源伺服器,或者在受管理群組的情況下,檢查來源伺服器在群組中是否具有 ONLINE 狀態(而非 RECOVERING 或不可用)。如果最高權重的來源不可用,複本會按權重降序嘗試所有列出的來源,然後從最高權重的來源重新開始。如果多個來源具有相同的權重,複本會隨機排序它們。如果複本需要再次開始處理列表,它會包含並重試最初發生連線失敗的來源。

來源列表儲存在 mysql.replication_asynchronous_connection_failovermysql.replication_asynchronous_connection_failover_managed 資料表中,並可以在 Performance Schema 的 replication_asynchronous_connection_failoverreplication_asynchronous_connection_failover_managed 資料表中檢視。複本會使用監視器執行緒來追蹤受管理群組的成員資格,並更新來源列表(thread/sql/replica_monitor)。CHANGE REPLICATION SOURCE TO 陳述式的 SOURCE_CONNECTION_AUTO_FAILOVER 選項設定,以及來源列表,會在遠端複製作業期間傳輸到複本的複製品。