整理马尼拉服务器 MySQL 主从复制延迟的排查与处理实战。
主从延迟会导致读到旧数据。以下是实战。
一、确认现象 - 从库数据落后主库 - 读请求拿到旧数据 - Seconds_Behind_Master 持续偏高
二、定位 1) SHOW SLAVE STATUS 看延迟与错误 2) 检查主库写入压力 3) 查看从库 IO 与 SQL 线程状态 4) 分析慢查询与 binlog 事件
三、常见原因 1) 从库单线程回放跟不上并发写 2) 大事务或大批量写 3) 从库资源不足(CPU/IO) 4) 网络延迟或带宽不足 5) 从库上有慢查询占用资源
四、处理 - 开启并行复制(多线程回放) - 拆分大事务为小批次 - 提升从库配置 - 优化从库慢查询 - 减少不必要的写放大
五、优化 1) 读写分离并做延迟感知 2) 关键读走主库 3) 半同步与监控 4) 合理分库分表
六、预防 - 延迟监控告警 - 大事务治理 - 定期巡检复制状态
总结:主从延迟要先看 slave status 与主库写入,再从并行复制、大事务和从库资源逐项优化。