开发者社区> 问答> 正文

RDS PostgreSQL间的双向同步中支持的冲突检测是什么?

RDS PostgreSQL间的双向同步中支持的冲突检测是什么?

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

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

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

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

    2021-12-13 11:38:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
金融级 PostgreSQL监控及优化 立即下载
PostgreSQL在哈啰的实践-周飞 立即下载
PostgreSQL高并发数据库应用数据 立即下载

相关镜像