19.4.9.2 副本异步连接故障转移
副本异步连接故障转移在 Group Replication 主节点上自动激活,用于在设置SOURCE_CONNECTION_AUTO_FAILOVER=1
的复制通道上。该功能旨在使发送者组和接收者组保持同步,即使一些成员暂时不可用。当该功能激活且正确配置时,如果主节点下线或进入错误状态,新的主节点将在同一通道上开始复制。新的主节点使用通道的源列表选择具有最高优先级(权重)设置的源,这可能不同于原始源。
要配置该功能,必须在所有副本成员服务器上设置复制通道、用户账户和密码,并在加入的新成员上设置。确保SOURCE_RETRY_COUNT
和SOURCE_CONNECT_RETRY
设置为允许少量重试次数,例如3和10。您可以使用CHANGE REPLICATION SOURCE TO
设置复制通道,也可以使用 MySQL 的克隆功能自动设置。该通道的SOURCE_CONNECTION_AUTO_FAILOVER
设置在主节点上广播给群成员,当主节点下线或进入错误状态时,该设置将被广播到次要服务器上,并且它们将更改通道的状态以匹配。
副本异步连接故障转移使用 Group Replication 成员操作mysql_start_failover_channels_if_primary
激活和停用,该操作默认启用。您可以在主节点上禁用该操作,以使用group_replication_disable_member_action
函数,例如:
mysql> SELECT group_replication_disable_member_action("mysql_start_failover_channels_if_primary", "AFTER_PRIMARY_ELECTION");
该函数只能在主节点上更改,并且必须为整个群组启用或禁用,因此不能有某些成员提供故障转移,而其他成员不提供。 lorsque mysql_start_failover_channels_if_primary
成员操作禁用,通道不需要在次要成员上配置,但如果主节点下线或进入错误状态,复制将在通道上停止。注意,如果有多个通道具有SOURCE_CONNECTION_AUTO_FAILOVER=1
,则成员操作将涵盖所有通道,因此不能单独启用或禁用该方法。将SOURCE_CONNECTION_AUTO_FAILOVER=0
设置在主节点上以禁用单个通道。
一个频道的源列表,在SOURCE_CONNECTION_AUTO_FAILOVER=1
时,会在所有组成员加入时广播,并且在它改变时也会广播。这是无论源是自动更新的管理组还是使用asynchronous_connection_failover_add_source()
、asynchronous_connection_failover_delete_source()
、asynchronous_connection_failover_add_managed()
或asynchronous_connection_failover_delete_managed()
手动添加或更改的。所有组成员都会收到在mysql.replication_asynchronous_connection_failover
和mysql.replication_asynchronous_connection_failover_managed
表中的当前源列表。由于源不需要在管理组中,所以可以将函数设置为同步一组接收器与一个或多个独立的发送器,甚至是一个发送器。一个独立的副本,如果不是 replication 组的一部分,不能使用这个功能。