【问题标题】:Primary-key collisions in multi-master replication environment using django使用 django 的多主复制环境中的主键冲突
【发布时间】:2021-07-07 22:14:41
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: sql django postgresql bucardo


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多