日志停在哪一段跨地域数据库副本落后数分钟,可能影响只读查询、报表新鲜度和灾备判断。单看控制台上的复制延迟,无法区分链路、源端写入形态与目标端回放能力。有效诊断应把过程拆成源端生成日志、网络传输、目标端接收、目标端回放,对齐时间窗口和日志位置,找出最先持续恶化的阶段。
判读原则:发送位置与接收位置差距扩大,优先查传输;接收位置接近源端而回放位置落后,优先查回放;按分片观察到单一流量异常,则要检查写入热点。多个问题可以同时存在,应先找出最早出现且能解释积压增长的环节。
网络受限时,源端产生日志的速率可能没有变化,但目标端接收速率下降,发送队列或待传输字节持续上升。结合链路利用率、丢包、重传、往返时延和流量整形记录判断;平均带宽充足并不能排除短时突发、共享链路争用或小包往返造成的有效吞吐下降。应同时查看数据库的发送积压与接收日志位置,不能仅凭通用网络探测作结论。🌧️
全库写入量看似平稳,单个分片、表或日志流仍可能因租户集中写入、递增键或大型批次而持续过载。按分片比较日志生成速率、事务大小、锁等待和队列深度。如果一个分片的积压与源端等待同步上升,而其他分片平稳,问题更像写入分布不均。此时增加链路容量不一定有效,因为瓶颈可能从源端写入、锁竞争或局部日志生成开始。🎯
当目标端接收位置持续追近源端,而已回放位置仍逐渐落后,应进一步分析回放吞吐、并行任务数、CPU、磁盘写入与刷盘时延、锁冲突、索引维护和事务耗时。资源利用率不高也不能直接排除回放瓶颈:提交顺序约束、串行阶段或少数大事务,可能限制并行度。检查指标时应确认数据库对“接收”“回放”的定义和采样口径一致。📚
在同一时间轴记录源端生成速率、发送队列、目标接收位置、目标回放位置、分片维度的写入速率,以及网络和目标端资源指标。用连续多个采样点观察趋势,而不是依据单点尖峰。若系统只提供延迟秒数,可结合日志位点或队列字节数核实:位点差随时间扩大,说明积压正在增长;位点暂时稳定但延迟值跳变,也可能涉及时钟偏差、采样滞后或统计口径变化。🔬
先确认延迟目标、采样间隔、源与目标的日志位置定义,并记录业务高峰基线。
比较生成、发送、接收和回放速率,按分片拆分数据;定位最早持续恶化的阶段。
传输积压伴随重传或链路排队时,检查跨区路径、共享链路和流量整形;源端局部热点突出时,检查键分布、批次与突发流量。
日志已经接收但回放落后时,结合事务大小和目标端资源,小步调整回放并行度或资源配置。每轮只改变一类因素,观察积压斜率、源端提交时延与目标查询时延。🛠️
把单一复制延迟数值当成故障定位结果,忽略日志位点和积压速率。
把网络探测正常等同于数据库传输没有拥塞,遗漏发送队列和链路突发。
在低峰期看到积压下降就宣布恢复;高峰写入可能再次超过传输或回放能力。
变更后覆盖一个完整业务高峰,验收积压不再持续扩大,恢复速率达到预先设定的目标,源端提交和目标端查询没有出现新的长尾。保留指标基线、变更记录和回退条件。若同时出现网络与回放积压,应分段验证每次调整的作用,避免用一项改善掩盖另一项未解决的问题。✅
结论:用生成、接收、回放三处位置建立证据链,再结合分片速率与资源趋势。日志停在途中,追查传输;日志抵达却未应用,追查回放;局部日志增长异常,则回到源端检查热点。📈
诊断记录应包含指标定义、观察窗口、阶段判断和验收结果,确保团队可以复核同一条证据链。