【问题标题】:Sequence data and logical replication序列数据和逻辑复制
【发布时间】:2019-05-02 04:47:05
【问题描述】:

据我了解,Postgres 中的逻辑复制不会复制序列数据。假设我们有两个多主 postgres 服务器

server1
test_table
current sequence 100

server2
test_table
current sequence 90

如果 server1 宕机而 server2 将接管写入,当它尝试插入序列为 90 的行时会发生什么?由于 server1 已经插入了一个 id 为 90 的行。有什么解决方法?

【问题讨论】:

    标签: postgresql postgresql-10 postgresql-11


    【解决方案1】:

    设置两个序列,使它们不会发生冲突。

    例如,在两个序列上使用INCREMENT BY 2,让服务器 1 给出奇数,服务器 2 给出偶数。

    【讨论】:

    • 谢谢,这是一个不错的选择。您知道是否可以使用物理复制进行多主同步?或者如果我想要同步多主机,我唯一的选择是逻辑复制?
    • physical 只是主从,因为它保留了操作顺序。逻辑可以是多主的。
    • 如果我们计划有一个 5 台服务器的集群怎么办?你觉得用 UUID 代替序列怎么样?
    • 您不能使用 PostgreSQL 逻辑复制进行多主复制(目前)。实际上,通常最好避免这种情况,因为随之而来的复制冲突会破坏任何不是专门为其设计的应用程序。
    • @LaurenzAlbe 你是对的,我的印象是它确实支持它,我必须研究活动/备用故障转移
    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多