You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
常见通用问题
遇到数据冲突和主键冲突时怎么办?
复制全文
下载 pdf
遇到数据冲突和主键冲突时怎么办?
本文主要适用于 DTS(数据传输服务)在数据迁移或同步任务中,源端与目标端发生数据冲突的排查与处理场景。常见的冲突表现包括:目标端已存在相同主键的数据、双向同步架构下两端同时写入同一数据,或因任务配置为“冲突报错”导致主键冲突时任务暂停等。​
​
遇到出现数据冲突,应该如何处理?
遇到主键冲突报错,应该如何处理?
​
建议您优先根据业务对数据一致性和任务连续性的要求来选择策略。​
在多数情况下,推荐使用冲突覆盖,即让源端数据覆盖目标端数据。如果选择冲突忽略,两端会各自保留数据,容易导致数据不一致,因此不推荐在生产场景使用。如果选择冲突报错,任务遇到冲突会暂停,需要人工处理,更适合测试环境或需要严格人工确认的场景。具体场景如下表所示:​
​
策略名称​
推荐程度​
策略说明​
冲突覆盖​
优先推荐​
​
当源端与目标端数据冲突时,源端数据将覆盖目标端数据。​
大多数场景下符合业务预期,但在双向同步等特殊场景下需谨慎评估写入时序。​
冲突忽略​
不推荐​
发生冲突时忽略处理,源端和目标端各自保留已写入的数据。​
极易造成源端和目标端数据不一致,不建议在生产环境中使用。​
冲突报错​
仅测试环境推荐​
发生冲突时任务暂停并报错,需人工介入修改冲突数据后再继续。​
属于加白功能(需提交工单申请)。可保障数据一致性,但会中断任务连续性。​
​
  • 为什么优先推荐使用冲突覆盖?​
  • 在多数迁移或同步场景中,源端通常被视为业务数据的主来源。当发生冲突时,让源端数据覆盖目标端数据通常更符合业务预期,也能保证任务继续推进。​
说明​
在双向同步场景中需要谨慎使用。例如 A 和 B 双向同步时,如果 A 在 t1 时刻写入数据,B 在 t2 时刻写入数据,且 t1 晚于 t2,那么在 A 的反向链路中,B 的数据同步到 A 时,可能会覆盖 A 在 t1 之后写入的数据。因此,双向同步场景下应结合写入时序和业务规则综合评估。​
  • 为什么不推荐使用冲突忽略?​
冲突忽略会在发生冲突时直接跳过处理,让两端各自保留数据。如果业务要求迁移或同步后两端数据保持严格一致,则不建议使用该策略。仅在业务明确允许两端数据存在差异,且已充分评估差异影响的情况下,才可考虑使用。​
  • 什么情况下可以使用冲突报错?​
该策略适合需要人工确认冲突数据、并希望在冲突发生时暂停任务的场景。选择该策略后,DTS 会暂停任务并报错,您需手动修改冲突数据,并在业务校验通过后,再手动重启任务。​
冲突报错可以帮助发现并阻断不一致数据继续写入,但也会导致迁移或同步任务暂停。如果在业务高峰或重要链路中频繁发生冲突,后续数据可能无法继续传输,影响任务连续性。因此,除非业务明确要求人工处理每一次冲突,否则不建议在生产场景中优先选择该策略,建议优先评估冲突覆盖策略是否满足业务预期。​
说明​
当前冲突报错策略属于加白功能,如需使用,请提交工单申请。​
​
​
最近更新时间:2026.08.12 17:56:34
这个页面对您有帮助吗?
有用
有用
无用
无用