Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


19.4.9.2 副本异步连接故障转移

副本异步连接故障转移在 Group Replication 主节点上自动激活,用于在设置SOURCE_CONNECTION_AUTO_FAILOVER=1的复制通道上。该功能旨在使发送者组和接收者组保持同步,即使一些成员暂时不可用。当该功能激活且正确配置时,如果主节点下线或进入错误状态,新的主节点将在同一通道上开始复制。新的主节点使用通道的源列表选择具有最高优先级(权重)设置的源,这可能不同于原始源。

要配置该功能,必须在所有副本成员服务器上设置复制通道、用户账户和密码,并在加入的新成员上设置。确保SOURCE_RETRY_COUNTSOURCE_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_failovermysql.replication_asynchronous_connection_failover_managed表中的当前源列表。由于源不需要在管理组中,所以可以将函数设置为同步一组接收器与一个或多个独立的发送器,甚至是一个发送器。一个独立的副本,如果不是 replication 组的一部分,不能使用这个功能。