diag-mysql-replicationlisted
Install: claude install-skill seed-forge/harness-ai-kit
# MySQL Replication Lag Full-Chain Diagnostics
## 用途
当用户报告主从延迟、读写分离数据不一致、或定期复制健康巡检时触发。
本技能是**自包含诊断 Runbook**。
## 输入
- 主库和从库的 MySQL 连接信息
- 可选:已知延迟时间段或特定大事务
## 输出
- 复制延迟分析报告(填充输出模板)
- 延迟根因 + 修复建议
## 前置条件
| 项 | 要求 |
|----|------|
| 权限 | `REPLICATION CLIENT`, `PROCESS` |
| 版本 | MySQL 5.7+(8.0+ 优先用 performance_schema replication 表) |
## 诊断步骤
### Step 1: 检查复制状态
```sql
-- 从库上执行
SHOW REPLICA STATUS\G -- MySQL 8.0.22+
SHOW SLAVE STATUS\G -- MySQL 5.7 / 8.0 < 8.0.22
-- 关键字段
-- Seconds_Behind_Source: 延迟秒数(NULL 表示复制中断)
-- Replica_IO_Running / Replica_SQL_Running: 线程是否正常
-- Last_Error / Last_SQL_Error: 最近的错误信息
-- Retrieved_Gtid_Set / Executed_Gtid_Set: GTID 进度
```
### Step 2: 对比主从 GTID / Position
```sql
-- 主库
SHOW MASTER STATUS;
-- 或 MySQL 8.0+
SHOW BINARY LOG STATUS;
-- 从库
SHOW REPLICA STATUS\G
-- 比较 Master_Log_File/Read_Master_Log_Pos 与 Executed_Gtid_Set
```
### Step 3: 检查从库 SQL 线程瓶颈
```sql
-- 从库当前执行的 SQL
SHOW PROCESSLIST;
-- 大事务检测(从库 relay log 中的大事务)
SELECT * FROM performance_schema.events_transactions_summary_by_thread_by_event_name
WHERE EVENT_NAME LIKE 'transaction%'
ORDER BY COUNT_STAR DESC LIMIT 10;
-- 从库并行复制状态(8.0+)
SELECT * FROM performance_schema.replication_applier_status_by_worker;
```
### Step 4: 检查复制配置
```sql
-- 复制模式
SHOW VARIABLES LIKE 'rpl_semi_sync%';
SHOW VARIABLES LIKE 'slave_parallel_type'; -- LOGICAL_CLOCK / WRITESET
SHOW VARIABLES LIKE 'slave_parallel_workers';
SHOW VARIABLES LIKE 'binlog_format'; -- ROW / MI