14.18.3 异步复制通道故障转移函数
以下函数允许您添加或删除复制源服务器到或从复制通道的源列表中,以及清除给定服务器的源列表。
表14.27 故障转移通道函数
Name | Description |
---|---|
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
表中,可以在性能chemareplication_asynchronous_connection_failover
表中查看。
如果复制通道位于一个Group Replication主节点上,且在该组中复制节点之间的故障转移是活动的,那么在任何成员加入或更新时,源列表将被广播给所有组成员。复制节点之间的故障转移是由mysql_start_failover_channels_if_primary
成员操作控制的,该操作默认启用,可以使用group_replication_disable_member_action
函数禁用。
-
asynchronous_connection_failover_add_managed()
将复制源服务器的配置信息添加到复制通道的源列表中,该服务器是Group Replication组的一部分。您只需要添加一个组成员。复制节点将自动添加其它成员,然后将源列表与成员资格变化保持同步。
语法:
asynchronous_connection_failover_add_managed(channel, managed_type, managed_name, host, port, network_namespace, primary_weight, secondary_weight)
参数:
-
channel
: 该复制通道的名称,该通道包含该复制源服务器。 -
managed_type
: managed服务类型,该服务类型目前只接受GroupReplication
。 -
managed_name
: managed组的标识符。在GroupReplication
managed服务中,该标识符是group_replication_group_name
系统变量的值。 -
host
: 复制源服务器的主机名。 -
port
: 复制源服务器的端口号。 -
network_namespace
: 复制源服务器的网络命名空间。指定一个空字符串,因为该参数保留用于将来使用。 -
primary_weight
: 在复制通道的源列表中,该复制源服务器在作为主节点时的优先级。权重从1到100,100为最高。对于主节点,80是一个合适的权重。如果当前连接的源不是该组中的最高权重,那么异步连接故障转移机制将激活。假设您将managed组设置为将高权重分配给主节点和低权重分配给次要节点,当主节点更改时,它的权重增加,连接将转移到它。 -
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()
清除异步连接故障转移机制的所有设置。该函数清除性能chema表
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节,“异步连接故障转移”。