1

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

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

提前致谢

4

1 回答 1

1

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

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

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

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

于 2021-04-13T03:28:18.060 回答