# 18.5.4.3配置分布式恢复

可以对组复制的分布式恢复过程的几个方面进行配置,以适合您的系统。

# 连接尝试次数

对于二进制日志中的状态传输,组复制限制了加入成员在尝试从捐赠者池连接到捐赠者时的尝试次数。如果在未成功连接的情况下达到连接重试限制,则分布式恢复过程将以错误终止。请注意,此限制指定加入成员尝试连接到施主的总次数。例如,如果两个组成员是合适的捐赠者,并且连接重试限制设置为4,则加入成员在达到限制之前会尝试两次连接到每个捐赠者。

默认连接重试限制为10。您可以使用组\u复制\u恢复\u重试\u计数系统变量。以下命令将尝试连接捐赠者的最大次数设置为5次:

mysql> SET GLOBAL group_replication_recovery_retry_count= 5;

对于远程克隆操作,此限制不适用。在开始尝试从二进制日志进行状态传输之前,组复制只尝试一次连接到每个合适的施主进行克隆。

# 连接尝试的睡眠时间间隔

对于二进制日志中的状态传输组\u复制\u恢复\u重新连接\u间隔系统变量定义分布式恢复进程在两次施主连接尝试之间应休眠的时间。请注意,分布式恢复不会在每次尝试连接施主后休眠。由于加入成员正在连接到不同的服务器,而不是重复连接到同一台服务器,因此可以假定影响服务器A的问题不会影响服务器B。因此,分布式恢复只有在经过所有可能的捐赠者后才会暂停。一旦加入该组的服务器尝试连接到该组中的每个合适的捐赠者,分布式恢复进程就会休眠,休眠时间为服务器配置的秒数组\u复制\u恢复\u重新连接\u间隔系统变量。例如,如果两个组成员是合适的捐赠者,并且连接重试限制设置为4,则加入成员将尝试连接到每个捐赠者,然后在连接重试间隔期间休眠,然后在达到限制之前再次尝试连接到每个捐赠者。

默认连接重试间隔为60秒,您可以动态更改此值。以下命令将分布式恢复施主连接重试间隔设置为120秒:

mysql> SET GLOBAL group_replication_recovery_reconnect_interval= 120;

对于远程克隆操作,此间隔不适用。在开始尝试从二进制日志进行状态传输之前,组复制只尝试一次连接到每个合适的施主进行克隆。

# 在线标记加入成员

当分布式恢复成功完成从捐赠者到加入成员的状态转移时,加入成员可以在组中标记为联机并准备好参与。默认情况下,这是在加入成员收到并应用其丢失的所有事务后完成的。或者,您可以允许加入成员在收到并验证(即完成冲突检测)其丢失的所有事务后,但在应用它们之前,将其标记为联机。如果要执行此操作,请使用组_复制_恢复_完成系统变量来指定替代设置经认证的交易.