首页/数据/数据库速查/sys 视图速查复制状态
主从复制与高可用53 条

sys 视图速查复制状态

sys schema 提供开箱即用的复制视图:一眼看延迟与线程状态,不用记忆 SHOW REPLICA STATUS 的几十个字段。

数据库速查数据更新于 2026-10-13

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 视图本身也带查询开销,监控频率较高时应避免每次都经过视图层。

易错点

  • 把 sys 视图当稳定的监控数据源:视图定义随版本变化,重要监控直接读 performance_schema 原表
  • 只查默认通道:多源复制下必须按通道查看,漏配权限或漏写通道名都会得出错误结论
  • 看到线程运行就认为一切正常:线程在运行但延迟持续增长同样是故障,要结合积压量与延迟一起判断
  • 忽略复制过滤规则的影响:过滤导致某些库表不参与复制,视图里的位点信息需要结合过滤规则解读
  • 权限不足只看得到部分数据:读 P_S 需要相应权限,权限受限时视图输出不完整,排查前先确认账号权限

数据来源与参考

  • MySQL 8.0 Reference Manual: sys Schema
  • MySQL 8.0 Reference Manual: performance_schema

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌