sys 视图速查复制状态是什么
MySQL 8.0 内置 sys schema,把复制状态的原始数据整理成人能直接读的视图:不用再记住 SHOW REPLICA STATUS 输出的几十个字段,也不必手工关联 performance_schema 的多张表。排查复制延迟、线程停摆、错误信息时,先查 sys 视图拿到结论,需要深挖再下钻到 performance_schema 原表。
基本信息
| 依赖 | 8.0 内置 sys schema(底层基于 performance_schema) |
|---|---|
| 典型视图 | sys.replication_connection_status、sys.replication_applier_status_by_worker |
| 线程定位 | sys.processlist 观察复制线程(Connect、Binlog Dump、Query 等) |
| 优势 | 字段精简、单位明确、可直接用于人工核对 |
| 注意 | 视图定义可能随小版本调整,脚本接入前先验证 |
典型使用场景
- 快速体检:一条查询确认复制线程是否运行、延迟多少
- 多通道监控:多源复制场景按通道名分组查看各链路状态
- 错误定位:直接读到最后一次错误信息与出错位置
- 临时检查:不熟悉 P_S 表结构时,先用 sys 视图拿到可读结论
- 交接与培训:视图字段含义直白,适合作为团队内的排查入口
常用视图
常用视图
-- 连接状态:IO 线程、来源、延迟等
SELECT * FROM sys.replication_connection_status\G
-- 回放线程与工作线程状态
SELECT * FROM sys.replication_applier_status_by_worker\G
-- 当前连接类线程一览(观察复制连接是否在线)
SELECT * FROM sys.processlist WHERE command = 'Connect';
-- 需要更细的原始数据时下钻 performance_schema
SELECT CHANNEL_NAME, SERVICE_STATE, COUNT_TRANSACTIONS_BEHIND_SOURCE
FROM performance_schema.replication_applier_status_by_worker;关注字段
| 字段 | 含义 | 异常表现 |
|---|---|---|
| THREAD_ID | 线程标识 | 与 processlist 关联定位具体线程 |
| SERVICE_STATE | 线程服务状态 | ON/OFF 之外的状态说明线程异常停摆 |
| LAST_ERROR_MESSAGE | 最近错误信息 | 出现内容说明回放或拉取已中断 |
| COUNT_TRANSACTIONS_BEHIND_SOURCE | 事务积压量 | 持续增长说明回放跟不上 |
sys 视图适合人工查看与临时核对;把重要监控长期建立在视图上要谨慎:视图定义与列名在不同小版本间可能调整,脚本容易在某次升级后突然报错。
高频轮询时直接读 performance_schema 原表更稳定,sys 视图本身也带查询开销,监控频率较高时应避免每次都经过视图层。