下列函數可讓您將複製來源伺服器新增至複製通道的來源清單,或從來源清單中移除,並清除指定伺服器的來源清單。
表 14.27 容錯移轉通道函數
名稱 | 描述 |
---|---|
asynchronous_connection_failover_add_managed() |
將群組成員來源伺服器設定資訊新增至複製通道來源清單 |
asynchronous_connection_failover_add_source() |
將來源伺服器設定資訊新增至複製通道來源清單 |
asynchronous_connection_failover_delete_managed() |
從複製通道來源清單移除受管理的群組 |
asynchronous_connection_failover_delete_source() |
從複製通道來源清單移除來源伺服器 |
asynchronous_connection_failover_reset() |
移除所有與群組複製非同步容錯移轉相關的設定 |
非同步連線容錯移轉機制會在複本與其來源之間的現有連線失敗後,自動建立從適當清單到新來源的非同步 (來源到複本) 複製連線。如果目前連線的來源在群組中沒有最高的加權優先順序,也會變更連線。對於定義為受管理群組一部分的群組複製來源伺服器,如果目前連線的來源離開群組或不再屬於大多數,則連線也會容錯移轉到另一個群組成員。如需有關該機制的詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。
來源清單會儲存在 mysql.replication_asynchronous_connection_failover
和 mysql.replication_asynchronous_connection_failover_managed
表格中,並可在效能結構描述 replication_asynchronous_connection_failover
表格中檢視。
如果複製通道位於啟用複本之間容錯移轉的群組的群組複製主要節點上,來源清單會在群組成員加入或以任何方法更新時廣播給所有群組成員。複本之間的容錯移轉由 mysql_start_failover_channels_if_primary
成員動作控制,該動作預設為啟用,且可以使用 group_replication_disable_member_action
函數停用。
asynchronous_connection_failover_add_managed()
將屬於受管理群組 (群組複製群組成員) 的複製來源伺服器設定資訊新增至複製通道的來源清單。您只需要新增一個群組成員。複本會自動從目前群組成員新增其餘成員,然後保持來源清單與成員資格變更保持一致。
語法
asynchronous_connection_failover_add_managed(channel, managed_type, managed_name, host, port, network_namespace, primary_weight, secondary_weight)
引數
channel
:此複製來源伺服器所屬來源清單的複製通道。managed_type
:非同步連線容錯移轉機制必須為此伺服器提供的受管理服務類型。目前唯一接受的值為GroupReplication
。managed_name
:伺服器所屬的受管理群組識別碼。對於GroupReplication
受管理服務,識別碼是group_replication_group_name
系統變數的值。host
:此複製來源伺服器的主機名稱。port
:此複製來源伺服器的連接埠號碼。network_namespace
:此複製來源伺服器的網路命名空間。指定空字串,因為此參數保留供日後使用。primary_weight
:此複製來源伺服器在作為受管理群組的主要節點時,在複製通道來源清單中的優先順序。加權值介於 1 到 100 之間,100 為最高。對於主要節點,80 是合適的加權值。如果目前連線的來源不是群組中加權最高的節點,則會啟用非同步連線容錯移轉機制。假設您設定受管理群組以給予主要節點更高的加權值,給予次要節點較低的加權值,當主要節點變更時,其加權值會增加,複本會將連線變更為該主要節點。secondary_weight
:此複製來源伺服器在作為受管理群組中的次要節點時,在複製通道來源清單中的優先順序。加權值介於 1 到 100 之間,100 為最高。對於次要節點,60 是合適的加權值。
傳回值
包含操作結果的字串,例如是否成功。
範例
SELECT asynchronous_connection_failover_add_managed('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60); +----------------------------------------------------------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_add_source('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60) | +----------------------------------------------------------------------------------------------------------------------------------------------------+ | Source managed configuration details successfully inserted. | +----------------------------------------------------------------------------------------------------------------------------------------------------+
如需詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。
asynchronous_connection_failover_add_source()
將複製來源伺服器的設定資訊新增至複製通道的來源清單。
語法
asynchronous_connection_failover_add_source(channel, host, port, network_namespace, weight)
引數
channel
:此複製來源伺服器所屬來源清單的複製通道。host
:此複製來源伺服器的主機名稱。port
:此複製來源伺服器的連接埠號碼。network_namespace
:此複製來源伺服器的網路命名空間。指定空字串,因為此參數保留供日後使用。weight
: 這個複製來源伺服器在複製通道來源列表中的優先順序。優先順序從 1 到 100,其中 100 為最高,50 為預設值。當非同步連線容錯移轉機制啟動時,會從通道來源列表中列出的替代來源中,選擇具有最高優先順序設定的來源進行第一次連線嘗試。如果此嘗試失敗,則複本會嘗試所有列出的來源,依優先順序遞減的順序,然後再次從最高優先順序的來源開始。如果多個來源具有相同的優先順序,則複本會隨機排序它們。如果目前連線的來源不是群組中權重最高的來源,則會啟動非同步連線容錯移轉機制。
傳回值
包含操作結果的字串,例如是否成功。
範例
SELECT asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80); +-------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80) | +-------------------------------------------------------------------------------------------------+ | Source configuration details successfully inserted. | +-------------------------------------------------------------------------------------------------+
如需詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。
asynchronous_connection_failover_delete_managed()
從複製通道的來源列表中移除整個受管理群組。當您使用此函式時,受管理群組中定義的所有複製來源伺服器都會從通道的來源列表中移除。
語法
asynchronous_connection_failover_delete_managed(channel, managed_name)
引數
channel
: 這個複製來源伺服器所屬來源列表的複製通道。managed_name
:伺服器所屬的受管理群組識別碼。對於GroupReplication
受管理服務,識別碼是group_replication_group_name
系統變數的值。
傳回值
包含操作結果的字串,例如是否成功。
範例
SELECT asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'); +-----------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') | +-----------------------------------------------------------------------------------------------------+ | Source managed configuration details successfully deleted. | +-----------------------------------------------------------------------------------------------------+
如需詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。
asynchronous_connection_failover_delete_source()
從複製通道的來源列表中移除複製來源伺服器的組態資訊。
語法
asynchronous_connection_failover_delete_source(channel, host, port, network_namespace)
引數
channel
: 這個複製來源伺服器所屬來源列表的複製通道。host
:此複製來源伺服器的主機名稱。port
:此複製來源伺服器的連接埠號碼。network_namespace
:此複製來源伺服器的網路命名空間。指定空字串,因為此參數保留供日後使用。
傳回值
包含操作結果的字串,例如是否成功。
範例
SELECT asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, ''); +------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, '') | +------------------------------------------------------------------------------------------------+ | Source configuration details successfully deleted. | +------------------------------------------------------------------------------------------------+
如需詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。
asynchronous_connection_failover_reset()
移除所有與非同步連線容錯移轉機制相關的設定。此函式會清除 Performance Schema 資料表
replication_asynchronous_connection_failover
和replication_asynchronous_connection_failover_managed
。asynchronous_connection_failover_reset()
只能在目前不是群組一部分且沒有任何複寫通道執行的伺服器上使用。您可以使用此函式來清理不再在受管理群組中使用的伺服器。語法
STRING asynchronous_connection_failover_reset()
引數
無。
傳回值
包含操作結果的字串,例如是否成功。
範例
mysql> SELECT asynchronous_connection_failover_reset(); +-------------------------------------------------------------------------+ | asynchronous_connection_failover_reset() | +-------------------------------------------------------------------------+ | The UDF asynchronous_connection_failover_reset() executed successfully. | +-------------------------------------------------------------------------+ 1 row in set (0.00 sec)
如需詳細資訊,請參閱第 19.4.9 節,〈使用非同步連線容錯移轉切換來源和複本〉。