组复制组成员的状态显示了其在组中的当前角色。性能架构表 replication_group_members
显示组中每个成员的状态。如果组功能齐全且所有成员都正常通信,则所有成员会为所有其他成员报告相同的状态。但是,已离开组或属于网络分区的成员无法报告其他服务器的准确信息。在这种情况下,成员不会尝试猜测其他服务器的状态,而是将它们报告为不可访问。
组成员可以处于以下状态
-
ONLINE(在线)
服务器是组的活动成员,并且处于完全正常运行状态。其他组成员可以连接到它,如果适用,客户端也可以连接到它。成员只有在
ONLINE
状态下才能与组完全同步并参与其中。-
RECOVERING(正在恢复)
服务器已加入组,并且正在成为活动成员。当前正在进行分布式恢复,其中成员正在使用远程克隆操作或捐赠者的二进制日志从捐赠者接收状态传输。此状态为
有关更多信息,请参见 第 20.5.4 节“分布式恢复”。
-
OFFLINE(离线)
组复制插件已加载,但该成员不属于任何组。当成员正在加入或重新加入组时,可能会短暂出现此状态。
-
ERROR(错误)
成员处于错误状态,并且无法作为组成员正常工作。成员可以在应用事务时或恢复阶段进入错误状态。处于此状态的成员不参与组的事务。有关错误状态的可能原因的更多信息,请参见 第 20.7.7 节“对故障检测和网络分区的响应”。
根据
group_replication_exit_state_action
设置的退出操作,成员处于只读模式(super_read_only=ON
),并且也可能处于离线模式(offline_mode=ON
)。请注意,在OFFLINE_MODE
退出操作后处于离线模式的服务器将显示为ERROR
状态,而不是OFFLINE
。退出操作为ABORT_SERVER
的服务器将关闭,并从组视图中删除。有关更多信息,请参见 第 20.7.7.4 节“退出操作”。当成员正在加入或重新加入复制组时,在组完成兼容性检查并将其接受为成员之前,其状态可能会显示为
ERROR
。-
UNREACHABLE(不可访问)
本地故障检测器怀疑该成员无法联系,因为该组的消息已超时。例如,如果某个成员被非自愿断开连接,则可能会发生这种情况。如果您看到其他服务器的此状态,则这也可能意味着您查询此表的成员是分区的一部分,其中组中的服务器子集可以相互联系,但无法联系组中的其他服务器。有关更多信息,请参见 第 20.7.8 节“处理网络分区和仲裁丢失”。
有关性能架构表内容的示例,请参见 第 20.4.3 节“replication_group_members 表”。