以下函数使您可以将复制源服务器添加到或从复制通道的源列表中删除,以及清除给定服务器的源列表。
表 14.27 故障转移通道函数
| Name | Description |
|---|---|
异步连接故障转移添加托管() |
将组成员源服务器配置信息添加到复制通道源列表中 |
异步连接故障转移添加源() |
将源服务器配置信息添加到复制通道源列表中 |
异步连接故障转移删除托管() |
从复制通道源列表中删除托管组 |
异步连接故障转移删除源() |
从复制通道源列表中删除源服务器 |
异步连接故障转移重置() |
删除所有与组复制异步故障转移相关的设置 |
异步连接故障转移机制自动在现有连接从副本到其源失败后,建立到新的源的异步(源到副本)复制连接。如果当前连接的源不具有最高权重优先级的组中,也会更改连接。对于定义为托管组的一部分的组复制源服务器,如果当前连接的源离开组或不再是多数,也会将连接故障转移到另一个组成员。有关机制的更多信息,请参见 第 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(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: 该复制源服务器的主机名。 -
端口: 此复制源服务器的端口号。 -
网络命名空间: 此复制源服务器的网络命名空间。指定一个空字符串,因为这个参数保留供将来使用。 -
主权重: 在复制通道的源列表中,作为主服务器时此复制源服务器的优先级。权重从 1 到 100,100 是最高的。对于主服务器,80 是一个合适的权重。当当前连接的源服务器不是组中的最高权重时,异步连接故障转移机制激活。 -
次要权重: 在复制通道的源列表中,作为次要服务器时此复制源服务器的优先级。权重从 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(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(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(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 节,“使用异步连接故障转移切换源和副本”。
-
-
删除异步连接故障转移机制的所有设置。该函数清除性能模式表
replication_asynchronous_connection_failover和replication_asynchronous_connection_failover_managed。异步连接故障转移重置()只能在不再是组的一部分且没有正在运行的复制通道的服务器上使用。您可以使用该函数来清洁不再用于管理组的服务器。语法:
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 节,“使用异步连接故障转移切换源和副本”。