繁体   English   中英

使用 django 的多主复制环境中的主键冲突

[英]Primary-key collisions in multi-master replication environment using django

我有一个使用 Postgres 和 Bucardo 的多主复制设置。 最重要的是,我有一个 Django 应用程序。

由于我不断遇到主键冲突,因此设置无法完全正常工作。 由于复制被配置为克隆整个数据库,因此我有点确信 Postgres 的序列 ID 正在更新,我想知道是否不是 Django 将最后一个序列 ID 号保存在 memory 中的某个位置。 如果是这样,是否有人暗示可以采取哪些措施来解决此问题?

提前致谢

在不知道如何处理冲突的情况下尝试多主机复制是鲁莽的。

这种情况很简单:在每个节点上定义序列,这样值就不会发生冲突。 如果你有两个数据库,那就是:

CREATE SEQUENCE tab_id_seq START WITH 1 INCREMENT BY 2;  -- on one database
CREATE SEQUENCE tab_id_seq START WITH 2 INCREMENT BY 2;  -- on the other database

但是您会遇到其他更难解决的复制冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM