-
Notifications
You must be signed in to change notification settings - Fork 111
replication_connection_status
xiaoboluo768 edited this page Jun 8, 2020
·
2 revisions
- 该表中记录的是从库IO线程的连接状态信息(也记录组复制架构中其他节点的连接信息,组复制架构中一个节点加入集群之前的数据需要使用异步复制通道进行数据同步,组复制的异步复制通道信息在show slave status中不可见)
- 与replication_connection_configuration表相比,replication_connection_status表中的记录变更更频繁,replication_connection_status表在从库IO线程连接期间,可能会因为网络或者做一些维护时执行stop slave的原因发生变化。而replication_connection_configuration表中的配置信息在从库IO线程连接期间并不会有变化
- replication_connection_status表各字段含义及与show slave status输出字段对应关系如下:
replication_connection_status表列名 | 含义 | 对应show slave status输出字段名 |
---|---|---|
CHANNEL_NAME | 显示复制通道名称 | Channel_Name |
GROUP_NAME | 如果此从库服务器是组复制架构中的组成员,则该字段显示从库服务器所属的组名称 | 无 |
SOURCE_UUID | 该通道下从库连接的master的server_uuid值 | Master_UUID |
THREAD_ID | 该通道下从库连接主库的I/O线程ID | 无 |
SERVICE_STATE | 该通道下从库所连接主库的IO线程状态,有效值有:ON(IO线程已创建且处于活跃状态或空闲状态),OFF(IO线程不再存在,可能没有启动)或CONNECTING(IO线程存在并正在尝试连接到主库,还未成功建立连接) | Slave_IO_Running |
RECEIVED_TRANSACTION_SET | 该通道下从库接收的主库事务对应的全局事务ID(GTID)集合。如果未启用GTID,则该字段为空 | Retrieved_Gtid_Set |
LAST_ERROR_NUMBER,LAST_ERROR_MESSAGE | 该通道下从库I/O线程发生错误停止的最新错误号和错误消息。如果错误编号为0,错误信息字段为空串,则表示“无错误”。如果LAST_ERROR_MESSAGE字段值不为空,则错误值也会打印在从库的错误日志中,注意,在执行RESET MASTER或RESET SLAVE语句时这两个列值会被重置 | Last_IO_Errno,Last_IO_Error |
LAST_ERROR_TIMESTAMP | 该通道下从库IO线程发生错误的时间,时间格式为:YYMMDD HH:MM:SS | Last_IO_Error_Timestamp |
LAST_HEARTBEAT_TIMESTAMP | 该通道下从库IO线程最近一次接收到主库的心跳信号的时间,时间格式为:YYMMDD HH:MM:SS | 无 |
COUNT_RECEIVED_HEARTBEATS | 该通道下从库自上一次重新启动、最近一次执行reset语句重置或最近一次执行CHANGE MASTER TO语句以来,从库接收到主库的心跳信号的总次数 | 无 |
-
对于replication_connection_status表,不允许执行TRUNCATE TABLE语句
-
表记录内容示例
admin@localhost : performance_schema 02:52:00> select * from replication_connection_status\G;
*************************** 1. row ***************************
CHANNEL_NAME:
GROUP_NAME:
SOURCE_UUID: b57c75c2-6205-11e7-8d9f-525400a4b2e1
THREAD_ID: 42
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 4043
LAST_HEARTBEAT_TIMESTAMP: 2017-08-24 14:52:00
RECEIVED_TRANSACTION_SET:
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
1 row in set (0.00 sec)
- 表结构定义
CREATE TABLE `replication_connection_status` (
`CHANNEL_NAME` char(64) NOT NULL,
`GROUP_NAME` char(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`SOURCE_UUID` char(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`THREAD_ID` bigint(20) unsigned DEFAULT NULL,
`SERVICE_STATE` enum('ON','OFF','CONNECTING') NOT NULL,
`COUNT_RECEIVED_HEARTBEATS` bigint(20) unsigned NOT NULL DEFAULT '0',
`LAST_HEARTBEAT_TIMESTAMP` timestamp NOT NULL COMMENT 'Shows when the most recent heartbeat signal was received.',
`RECEIVED_TRANSACTION_SET` longtext NOT NULL,
`LAST_ERROR_NUMBER` int(11) NOT NULL,
`LAST_ERROR_MESSAGE` varchar(1024) NOT NULL,
`LAST_ERROR_TIMESTAMP` timestamp NOT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
上一篇: replication_connection_configuration表 | 下一篇: replication_group_member_stats表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!