20.7.7.3 自动重新加入
系统变量group_ replication_autorejoin_tries
使得被驱逐或达到不可达多数超时的成员自动尝试重新加入组。默认值(3),表示成员将自动尝试重新加入组3次,每次尝试之间有5分钟的间隔。
当自动重新加入不激活时,成员一旦恢复通信,就会接受驱逐,并按照group_ replication_exit_state_action
系统变量指定的操作继续执行。然后,需要手动干预来将成员重新加入组。使用自动重新加入功能适合在出现暂时网络问题时,可以容忍 stale 读取并减少手动干预需求的情况。
使用自动重新加入时,当成员的驱逐或不可达多数超时达到时,它将尝试重新加入(使用当前插件选项值),然后继续进行进一步的自动重新加入尝试,直到指定的尝试次数。每次自动重新加入尝试后,成员将等待5分钟再进行下一次尝试。自动重新加入尝试和时间之间的间隔称为自动重新加入过程。如果指定的尝试次数未能成功重新加入或被停止,成员将按照group_ replication_exit_state_action
系统变量指定的操作继续执行。
在自动重新连接尝试期间和之间,成员保持超级只读模式,并在复制组的视图中显示一个ERROR
状态。在这个时间内,成员不接受写入操作。但是,可以继续在成员上执行读取操作,随着时间的推移, stale reads 的可能性会增加。如果您想在自动重新连接过程中将成员停机,可以在任何时候使用STOP GROUP_REPLICATION
语句或关闭服务器。如果您不能容忍任何时间段内的 stale reads,设置group_replication_autorejoin_tries
系统变量为0。
您可以使用性能_schema监控自动重新连接过程。在进行自动重新连接过程时,性能_schema表events_ stages_current
显示事件“正在进行自动重新连接过程”,其中包含了在当前实例中尝试的重试次数(在WORK_COMPLETED
字段中)。表events_stages_summary_global_by_event_name
显示了服务器实例启动自动重新连接过程的次数(在COUNT_STAR
字段中)。表events_stages_history_long
显示了每个自动重新连接过程的完成时间(在TIMER_END
字段中)。当成员正在重新连接复制组时,它的状态可以显示为OFFLINE
或ERROR
,直到组完成兼容性检查并接受它为成员。成员在赶上组事务时,它的状态是RECOVERING
。