复制怎么查
主机名示例:mysql-a(源)、mysql-b(副本)。不要写真实公网地址。
副本健康
8.0:
SHOW REPLICA STATUS\G
旧版本是 SHOW SLAVE STATUS\G。看这几列就够起步:
- IO 线程是否连上源
- SQL 线程是否在应用事件
Seconds_Behind_SourceLast_Error/Last_IO_Error
源端:
SHOW MASTER STATUS;
-- 8.0.22+ 也可用
SHOW BINARY LOG STATUS;
GTID
开了 GTID 后,定位用事务集合,不靠文件名+位移硬对。跳过坏事件前必须知道跳过的是哪一条,乱跳会让副本和源数据分叉。
SELECT @@gtid_mode, @@enforce_gtid_consistency;
延迟常见原因
- 副本磁盘或 CPU 弱于源
- 大事务、大 DDL
- 副本
sync_binlog/ 刷盘过严叠加慢盘 - 应用打到了副本写(应只读)
注意
复制不是备份。误删会传到副本。要回退,靠备份或延迟副本,而不是「有从库就安全」。
参考:Replication