文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  来源的异步连接故障转移

19.4.9.1 来源的异步连接故障转移

要在复制通道上激活异步连接故障转移,请在 CHANGE REPLICATION SOURCE TO 语句中为该通道设置 SOURCE_CONNECTION_AUTO_FAILOVER=1。该通道必须使用 GTID 自动定位 (SOURCE_AUTO_POSITION = 1)。

重要

当与源的现有连接失败时,副本首先会根据 CHANGE REPLICATION SOURCE TOSOURCE_RETRY_COUNT 选项指定的次数重试相同的连接。尝试之间的间隔由 SOURCE_CONNECT_RETRY 选项设置。当这些尝试耗尽时,异步连接故障转移机制接管。请注意,为连接到单个源设计的这些选项的默认值会使副本对同一个连接重试 60 天。为了确保异步连接故障转移机制能够及时激活,请将 SOURCE_RETRY_COUNTSOURCE_CONNECT_RETRY 设置为仅允许对同一个源进行几次重试的最小数字,以防连接失败是由短暂的网络中断引起的。合适的数值是 SOURCE_RETRY_COUNT=3SOURCE_CONNECT_RETRY=10,这使得副本以 10 秒的间隔重试连接 3 次。

您还需要为复制通道设置源列表,以指定可用于故障转移的源。您可以使用 asynchronous_connection_failover_add_sourceasynchronous_connection_failover_delete_source 函数来添加和删除单个复制源服务器,以设置和管理源列表。要添加和删除受管理的服务器组,请改为使用 asynchronous_connection_failover_add_managedasynchronous_connection_failover_delete_managed 函数。

这些函数会命名相关的复制通道,并指定要添加到或从通道源列表中删除的 MySQL 实例的主机名、端口号、网络命名空间和加权优先级 (1-100,其中 100 为最高优先级)。对于受管理的组,您还需要指定受管理服务的类型 (目前仅支持组复制),以及受管理组的标识符 (对于组复制,这是 group_replication_group_name 系统变量的值)。当您添加受管理的组时,您只需要添加一个组成员,副本会自动从当前组成员资格中添加其余成员。当您删除受管理的组时,您会一起删除整个组。

异步连接故障转移机制还会在源列表中其他可用服务器具有更高优先级(权重)设置的情况下,将连接故障转移到该服务器。此功能确保副本始终连接到最合适的源服务器,并适用于托管组和单个(非托管)服务器。对于托管组,源的权重根据它是主服务器还是从服务器来分配。因此,假设您将托管组设置为为主服务器分配更高的权重,为从服务器分配更低的权重,当主服务器发生变化时,更高的权重将分配给新的主服务器,因此副本会将连接更改到新的主服务器。此外,如果当前连接的托管源服务器离开托管组,或不再是托管组中的多数成员,异步连接故障转移机制也会更改连接。

在发生连接故障转移时,将选择通道源列表中具有最高优先级(权重)设置的备用源,进行首次连接尝试。副本首先检查它是否可以连接到源服务器,或者在托管组的情况下,检查源服务器在组中是否具有ONLINE状态(而不是RECOVERING或不可用)。如果权重最高的源不可用,副本将尝试连接到列表中所有其他源,按权重降序排列,然后从权重最高的源重新开始。如果多个源具有相同的权重,副本会随机对它们进行排序。如果副本需要重新开始遍历列表,它将包括并重试导致原始连接失败的源。

源列表存储在mysql.replication_asynchronous_connection_failovermysql.replication_asynchronous_connection_failover_managed表中,可以在 Performance Schema 的replication_asynchronous_connection_failoverreplication_asynchronous_connection_failover_managed表中查看。副本使用一个监控线程来跟踪托管组的成员资格并更新源列表 (thread/sql/replica_monitor)。CHANGE REPLICATION SOURCE TO语句的SOURCE_CONNECTION_AUTO_FAILOVER选项设置和源列表将在远程克隆操作期间传递给副本的克隆。