记录分享工作的点点滴滴

0%

MySQL8.0 组复制中成员的几种状态

在组复制中,有一张表用来监视组中各成员的不同实例的状态。表信息会随着视图的更改而变更,当组中成员动态变化时,实例之间会交互一些元数据信息并继续合作。该表信息在所有实例之间共享的。

组成员表信息

mysql> select * from performance_schema.replication_group_members ;
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST  | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 7704c3a4-8927-11ea-b68b-08688d61c0df | 10.168.16.17 |        3010 | ONLINE       | PRIMARY     | 8.0.19         |
| group_replication_applier | acf9368d-8923-11ea-825b-08688d61c1b7 | 10.168.16.16 |        3009 | ONLINE       | SECONDARY   | 8.0.19         |
| group_replication_applier | bc0d147b-891f-11ea-ae49-08688d61c0e5 | 10.168.16.15 |        3008 | ONLINE       | SECONDARY   | 8.0.19         |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+  

详解 MEMBER_STATE

成员的状态有以下几种:

ONLINE:

1
成员随时可以作为一个功能齐全的组成员,也就是说客户端可以连接并执行事务

RECOVERING:

1
成员已加入组,正在接受donor的数据传输,处于恢复过程

OFFLINE:

1
游离在组外,未加入组(组中正常的成员执行:stop group_replication命令后,该成员状态变化:ONLINE-->OFFLINE 并从中剔除)

ERROR:

1
2
3
4
5
6
成员处于错误状态,不能作为组成员正常运行,处于退出状态,根据退出操作设置的状态, 
可能处于:
1.默认 READ_ONLY(>8.0116
2.ABORT_SERVER (≥ 8.0.12, ≤ 8.0.15)
3.OFFLINE_MODE(≥ 8.0.18) 。
退出操作状态,由group_replication_exit_state_action 参数决定

UNREACHABLE:

1
故障检测过程怀疑此成员无法联系,组消息已超时。