可以配置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。分布式恢复因此只有在尝试连接到所有可能的捐赠者后才休眠。例如,如果有2个组成员是合适的捐赠者,并且连接重试限制设置为4,则加入成员将尝试连接到每个捐赠者,然后休眠连接重试间隔,然后尝试连接到每个捐赠者,然后达到限制。
默认连接重试间隔为60秒,您可以动态更改该值。以下命令将分布式恢复捐赠者连接重试间隔设置为120秒:
mysql> SET GLOBAL group_replication_recovery_reconnect_interval= 120;
对于远程克隆操作,该间隔不适用。Group Replication对每个合适的捐赠者进行一次连接尝试,然后开始从二进制日志传输状态。
当分布式恢复成功完成从捐赠者到加入成员的状态传输时,加入成员可以在组中标记为在线并准备好参与。默认情况下,这是在加入成员接收并应用所有缺少的事务后完成的。可选地,您可以允许加入成员在接收并认证(即完成冲突检测)所有缺少的事务时标记为在线,但是在应用它们之前。如果您想这样做,请使用group_replication_recovery_complete_at
系统变量指定备用设置TRANSACTIONS_CERTIFIED
。