以下函式可讓您將複製來源伺服器新增至複製通道的來源清單或從中移除,以及清除指定伺服器的來源清單。
表 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,「使用非同步連線容錯移轉切換來源與複本」。