## 前期回顾

这期的专题我们来介绍MySQL组复制相关的内容

| 主机名 |业务IP|私有IP  |复制用户|角色
| --- | --- | --- |  --- | ---|
| rac1 | 11.12.14.29| 10.10.10.11 |rpl|主|
| rac2| 11.12.14.30| 10.10.10.12|rpl|从|
| rac3 | 11.12.14.39 | 10.10.10.13|rpl|从|


上节我们说了MGR部署,这节的内容为如何监控MGR的状态

我们可以使用如下数据库表来监控,我们需要Performance Schema是开启的,一般都是开启的

## 1.组复制通道名称含义

### 1.1 group_replication_recovery

该通道用于同分布式恢复阶段相关的复制更改(replication changes),一般用于成员新加入时的恢复动作


### 1.2 group_replication_applier

该通道用于组的传入的变化(incoming changes),该通道用于应用直接从组内传来的事务,即成员间的事务的应用
 


## 2.replication_group_member_stats

该表用于展示组内成员的状态信息,它只在组复制运行时才会有结果

注意该表不可以被truncate


[image:718 size:orig]



- channel_name 组复制通道的名称
- view_id  当前该组的view id,该ID会在成员关系发生变化时改变,如退出或者新增
- member_id 为运行查询的机器的uuid
- COUNT_TRANSACTIONS_IN_QUEUE 代表因为做冲突检测而需要等待的事务的数量,一旦冲突检测通过,其会进入应用的队列
- COUNT_TRANSACTIONS_CHECKED 代表做过冲突检测的事务的数量
- COUNT_CONFLICTS_DETECTED代表未通过冲突检测的事务的数量
- COUNT_TRANSACTIONS_ROWS_VALIDATING 代表可以被用来做认证但还没有做垃圾收集的事务的数量
- TRANSACTIONS_COMMITTED_ALL_MEMBERS 代表已经在组内所有成员中成功提交过的事务,以GTID 集合的形式展现,会以固定时间刷新
- LAST_CONFLICT_FREE_TRANSACTION 最近的被检测冲突空闲事务(conflict free transaction)的事务标识符


## 3. replication_group_members

该表显示复制组内成员信息的网络和状态信息

注意该表不可以被truncate

[image:719 size:orig]


- channel_name 组复制通道的名称
- member_id 代表组内成员的uuid
- member_host 代表组内成员的网络地址(主机名或者IP地址),通过数据库hostname变量获得,注意这是共有地址,非私有的
- MEMBER_PORT 代表数据库的监听端口,通过数据库port变量获得
- MEMBER_STATE 代表成员当前的状态

他可以有如下状态
- OFFLINE      组复制插件已经被安装但没有被开启
- RECOVERING 成员已经被加入组中,正在回复数据库中
- ONLINE  代表成员已经加入组中并且同步完成,需确保成员处在该状态
- ERROR 代表成员遇到了错误,譬如无法加入组或者同步异常,请查看error日志排错
- UNREACHABLE 代表组无法和该成员通信,因为组信息超时


## 4. replication_connection_status

该表显示当前I/O线程的状态,I/O线程负责处理从库同主库间的连接

注意该表不可以被truncate

[image:720 size:orig]


下表列出了其和show slave status\G命令的一些比较

MGR中 show slave status\G 无结果

[image:721 size:orig]



## 5. replication_applier_status

该表显示当前SQL线程的状态,

[image:722 size:orig]


下表列出了其和show slave status\G命令的一些比较

MGR中 show slave status\G 无结果

[image:723 size:orig]


## 6. 查询哪个是主库

在单主模式下,如果发生切换我们会不知道哪一台是现有的主库,我们可以使用如下命令查看

```

SHOW STATUS LIKE 'group_replication_primary_member'
```

[image:724 size:orig]




## 7. 参考资料

[https://dev.mysql.com/doc/refman/5.7/en/group-replication-monitoring.html](https://dev.mysql.com/doc/refman/5.7/en/group-replication-monitoring.html)