组复制组成员的状态显示其在组中的当前角色。性能模式表 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 表”,以获取性能模式表的示例内容。