主题:DM 同步 MySQL 到 TiDB,大表增量延迟持续上涨

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.0
【复现路径】

  1. 源端数据库为 MySQL 8.0,单张业务大表数据量5000万行
  2. 通过DM工具完成全量数据导入后,开启增量binlog同步
  3. 业务高峰期源端写入TPS达到5000~10000
    【遇到的问题:问题现象及影响】
    数据同步延迟从秒级逐步上涨至30分钟以上,下游TiDB查询数据严重滞后,直接影响线上报表、数据对账类业务正常运行。
    【资源配置】
    DM-worker节点×4;TiKV节点共12台,磁盘为NVMe高速盘
1 个赞
  • Dashboard DM 监控截图:同步延迟趋势图、binlog 消费速度、worker 负载曲线;
  • DM-worker 日志:抓取大事务 event、下游执行慢 DML 报错日志;
  • 下游 TiDB 监控:TiKV 写入流量、Region 热点、raft 写入队列监控截图;
  • 集群信息页面:DM-worker、下游 TiDB 主机列表截图。
2 个赞

超大表全量导入改用TiDB Lightning并行导入,比 DM 全量速度快 5~10 倍,再切增量同步

1 个赞

单张大表所有写入落到少量 Region,TiKV raft 写入队列拥堵,下游吞吐跟不上上游 5000-10000 TPS 峰值。

先确定延时主要在哪个环节。
下游tidb是否有热点、负载如何等,根据问题具体处理。

拆分大表、调大 DM 同步并发与批次参数,优化 binlog 解析。
合理分配 DM-worker 任务,均衡负载。
调优下游 TiDB 写入参数,关闭多余约束、索引。
检查 binlog 格式与日志清理策略,避免解析阻塞。
开启 DM 增量同步分片合并,提升吞吐。
限制源端大事务,拆分超大事务降低同步压力。
调整 DM 事务提交批次大小,减少刷盘频次。
检查网络带宽与连接稳定性,排除传输瓶颈。
优化 TiKV 写入线程、Raft 参数,提升落盘速度。
监控 DM 线程状态,定位解析 / 执行 / 写入瓶颈。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。