- 文档首页
数据库传输服务
常见问题
常见通用问题
在数据迁移或同步任务中,导致任务延迟的可能原因是什么?
常见通用问题
在数据迁移或同步任务中,导致任务延迟的可能原因是什么?
在数据迁移或同步任务中,导致任务延迟的可能原因是什么?
- 可能原因一:源库在处理大事务。例如:当源端为 MySQL 时,如果源库写入了超过 max_allowed_packet 参数的大事务,可能会导致 DTS 在拉取或解析 Binlog 时卡住,从而造成迁移或同步任务延迟。MySQL 协议中 max_allowed_packet 的上限为 1GB,DTS 侧不额外限制该参数,但建议业务侧合理控制单个事务大小,避免超大事务影响任务运行。
- 解决方案:您可以把导致任务延迟的表或触发器等暂时移出任务,待任务延迟降低后再重新将暂停的表或触发器等添加至迁移或同步任务中。
- 可能原因三:迁移任务或同步任务被手动暂停了导致数据堆积,从而造成数据延迟较高。
- 可能原因四:任务的链路规格选择的是 Compact,与您的业务量不相符,导致延迟不断增加。
- 可能原因五:由于目标数据库发生了内存溢出,导致增量延迟。
- 解决方案五:您可以先删除延迟表,然后重新添加被延迟的表。
- 可能原因六:由于在全量迁移或全量初始化阶段,新增的数据较多,在完成全量迁移或全量初始化后,系统将先追平该阶段内的增量数据,因此会导致数据延迟较大。
- 解决方案六:您可以先删除延迟表,然后重新添加被延迟的表。
- 可能原因七:目标端实例业务较多,导致目标端实例负载较高。
- 解决方案七:建议您先暂停其他业务,待延迟降低后再启动其他业务的正常运行。
- 可能原因八:源端无主键表执行全表 DELETE 操作,由于无主键表的 DELETE 会导致 Binlog 生成大量行级删除记录。
- 解决方案八:终止源端的 DELETE 操作,DTS 将停止接收新的 DELETE 事件,逐步处理积压日志,延迟逐渐恢复正常。建议在暂停源端的 DELETE 操作后,为源端表增加主键,避免再次出现该问题。
- 可能原因九:源库执行了 RENAME TABLE 等 DDL 操作,因元数据锁(MDL)竞争导致 DTS 任务被阻塞,从而引发延迟或进度停滞。
- 避免在迁移/同步高峰期执行 RENAME TABLE、ALTER TABLE 等 DDL 操作。
- 若已发生阻塞,可临时终止 DDL 会话,待 DTS 恢复后再重新执行。
- 可能原因十:同步任务中配置了复杂的 ETL 规则。
- 审查现有规则:检查并移除不必要的 ETL 规则,简化复杂的转换逻辑。
- 监控任务指标:通过 DTS 控制台关注“同步延迟”、“每秒处理行数(TPS)”和“CPU使用率”等关键指标,确认延迟是否由 ETL 引起。
- 升级实例规格:如果业务上必须保留复杂的 ETL 规则,建议升级 DTS 任务的实例规格,以提供更强的计算能力。详细操作,请参见变更同步任务规格。
最近更新时间:2026.08.05 10:51:53