20.5.4.3 分布式恢复配置
Group Replication 的分布式恢复过程中有多个方面可以根据您的系统进行配置。
从二进制日志中状态转移时,Group Replication 将限制加入成员连接到捐赠者的尝试次数。如果在连接重试限制内没有成功连接,分布式恢复过程将以错误终止。请注意,这个限制指定的是加入成员连接到捐赠者的总尝试次数。例如,如果有2个组成员是合适的捐赠者,并且连接重试限制设置为4,那么加入成员将对每个捐赠者进行2次连接尝试,直到达到限制。
默认连接重试限制为10。您可以使用group_ replication_recovery_retry_count
系统变量来配置这个设置。以下命令将最大尝试次数连接到捐赠者设置为5:
mysql> SET GLOBAL group_replication_recovery_retry_count= 5;
对于远程克隆操作,这个限制不适用。Group Replication 将对每个合适的捐赠者进行一次连接尝试,然后开始从二进制日志中状态转移。
从二进制日志进行状态转移时,group_replication_recovery_reconnect_interval
系统变量定义了分布式恢复过程在捐助连接尝试之间的睡眠时间。请注意,分布式恢复不在每个捐助连接尝试后睡眠。因为加入组的成员正在连接到不同的服务器,而不是重复地连接到同一个服务器,因此它可以假设影响服务器A的问题不影响服务器B。因此,分布式恢复只在所有可能的捐助者都被遍历后才会暂停。一旦服务器已经尝试连接到组中的每个合适的捐助者,然后分布式恢复过程将睡眠指定时间由group_replication_recovery_reconnect_interval
系统变量配置的秒数。例如,如果组中的2个成员是合适的捐助者,并且连接重试限制设置为4,那么加入组的成员将尝试连接到每个捐助者,然后睡眠连接重试间隔,接着再尝试连接到每个捐助者直到达到限制。
默认的连接重试间隔是60秒,您可以动态更改这个值。以下命令将分布式恢复捐助连接重试间隔设置为120秒:
mysql> SET GLOBAL group_replication_recovery_reconnect_interval= 120;
对于远程克隆操作,这个间隔不适用。Group Replication 只对每个合适的捐助者进行一次连接尝试,然后开始尝试从二进制日志中状态转移。
分布式恢复完成后,从捐赠者到加入成员的状态转移成功,加入成员可以在组中标记为在线,并准备参与。这个过程是在新成员接收和应用了它之前missed的事务后进行的。