开发者社区> 问答> 正文

云数据库MongoDB版间的双向同步中支持的冲突检测是什么?

云数据库MongoDB版间的双向同步中支持的冲突检测是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-14 14:42:08 377 0
1 条回答
写回答
取消 提交回答
  • 为保障同步数据的一致性,您需要确保同一个主键、业务主键或唯一键的记录只在双向同步的一个节点进行更新。如果同时更新则会按照您在数据同步作业中配置的冲突修复策略进行响应。

    DTS通过冲突检测和修复最大程度地维护双向同步实例的稳定性。目前DTS支持进行检测的冲突类型包括: INSERT导致的唯一性冲突 同步INSERT语句时违背了唯一性约束,例如双向同步的两个节点同时或者在极为接近的时间INSERT某个主键值相同的记录,那么同步到对端时,会因为已经存在相同主键值的记录,导致Insert同步失败。

    UPDATE更新的记录不完全匹配 UPDATE要更新的记录在同步目标实例中不存在时,DTS会自动转化为INSERT,此时可能会出现唯一键的唯一性冲突。 UPDATE要更新的记录出现主键或唯一键冲突。 DELETE对应的记录不存在 DELETE要删除的记录在同步的目标实例中不存在。出现这种冲突时,不论配置何种冲突修复策略,DTS都会自动忽略DELETE操作。

    注意 由于数据同步两端的系统时间可能存在差异、同步存在延时等多种因素,DTS无法完全保证冲突检测机制能够完全防止数据的冲突。在使用双向同步时,您需要在业务层面配合进行相应的改造,保证同一个主键、业务主键或唯一键的记录只在双向同步的某个节点进行更新。 对于上述数据同步的冲突,DTS提供了修复策略,您可以在配置双向同步时选择。

    2021-12-14 14:42:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载