group_replication_autorejoin_tries
系统变量使被驱逐或达到不可达多数超时的成员自动尝试重新加入组。默认值 (3) 表示成员自动尝试 3 次重新加入组,每次尝试之间间隔 5 分钟。
当未激活自动重新加入时,成员会在恢复通信后立即接受其驱逐,并继续执行由 group_replication_exit_state_action
系统变量指定的动作。之后,需要手动干预才能将成员重新加入组。如果您能够容忍潜在的陈旧读取,并希望最大程度地减少手动干预的需要,尤其是当瞬态网络问题经常导致成员被驱逐时,使用自动重新加入功能是合适的。
使用自动重新加入时,当成员被驱逐或达到不可达多数超时时,它会尝试重新加入(使用当前插件选项值),然后继续尝试重新加入,直到达到指定的尝试次数。在自动重新加入尝试失败后,成员会等待 5 分钟后再进行下一次尝试。自动重新加入尝试及其间隔时间称为自动重新加入过程。如果在成员重新加入或被停止之前用尽了指定的尝试次数,则成员将继续执行由 group_replication_exit_state_action
系统变量指定的动作。
在自动重新加入尝试期间和尝试之间,成员将保持超级只读模式,并在其对复制组的视图中显示 ERROR
状态。在此期间,成员不接受写入。但是,仍然可以在成员上进行读取,随着时间的推移,陈旧读取的可能性会越来越大。如果您想在自动重新加入过程中干预以将成员下线,则可以使用 STOP GROUP_REPLICATION
语句或关闭服务器,随时手动停止成员。如果您在任何时间段内都无法容忍陈旧读取的可能性,请将 group_replication_autorejoin_tries
系统变量设置为 0。
您可以使用 Performance Schema 监控自动重新加入过程。在自动重新加入过程进行期间,Performance Schema 表 events_stages_current
显示事件 “正在进行自动重新加入过程”,以及在本次过程期间已尝试的重试次数(在 WORK_COMPLETED
字段中)。events_stages_summary_global_by_event_name
表显示服务器实例启动自动重新加入过程的次数(在 COUNT_STAR
字段中)。events_stages_history_long
表显示这些自动重新加入过程完成的时间(在 TIMER_END
字段中)。在成员重新加入复制组时,在组完成兼容性检查并接受其作为成员之前,其状态可能显示为 OFFLINE
或 ERROR
。当成员赶上组的事务时,其状态为 RECOVERING
。