【问题标题】:Promoting a postgres slave to master node将 postgres 从属提升为主节点
【发布时间】:2022-07-22 20:23:38
【问题描述】:

我有两个postgresql 11.4 作为主节点和从节点运行。

我在主服务器中插入大量数据以查看它在从服务器上复制。 尝试模拟以下情况,

  • 插入大量数据
  • pause_wal_replay 从机上
  • 等待 wal 文件发送到 slave
  • resume_wal_replay 在奴隶上
  • 当有多个wal文件等待重播时立即提升

如果此时发出promote signal[当有多个wal-已经发货等待重播],slave什么时候会自我提升?

  1. 重播所有现有 wal 文件后 [shipped and waiting to be replayed] 或

  2. 收到提升信号后立即。 [Without replaying the wal files 等待-causing data loss? ]

如果是(1),如果master节点还在发送wal文件,我尝试提升slave怎么办。是否忽略传入的wal并自我提升?

希望 PG 专家能够阐明这一点。

PS:如果值得一提,我会通过创建一个“pg_failover_trigger”来发出提升信号。

【问题讨论】:

    标签: postgresql replication master-slave postgresql-11


    【解决方案1】:

    当它被提升时,备用服务器关闭 WAL 接收进程并恢复它所有剩余的 WAL。所以我们从 1 中得到行为。

    【讨论】:

      【解决方案2】:

      我有一个类似情况的问题。我有一个使用 WAL 复制的备用服务器,但延迟了 10 天(在 recovery.conf 中使用 recovery_min_apply_delay = 10d) 仍有待应用的 10 天 WAL 已分阶段并可用,但由于此延迟参数,它们尚未应用。

      我的问题是 - 当使用触发文件升级备用时,是否在升级前应用了所有剩余 10 天的日志?如果答案是肯定的,我该如何防止这种行为。换句话说,我希望我的提升集群包含滞后 10 天的数据。

      谢谢。

      【讨论】:

      猜你喜欢
      • 2021-09-18
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 2014-05-03
      • 2016-12-02
      • 2018-09-17
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多