在副本上进行“pg_ctl 升级”后,旧主数据库会发生什么情况?

问题描述 投票:0回答:1

我有一个 PostgreSQL 11 流(即

wal_type = replica
)级联复制方案,设置如下:

db1 -> db2 -> db3

如果我在

db1
上执行
db3
pg_ctl promote
db2
会发生什么?

  • db1
    是否会自动转换为
    db2
    的副本?
  • db3
    是否会受到任何影响,还是会继续复制
    db2
    ,因为它无论如何都是主要的?

由于在故障转移到副本后回退到原始主数据库并非易事,因此我特别关心保持

db1
不受影响,这样如果升级出现任何问题,我可以将其用作原始主备份(并重新创建
 db2
db3
(如有必要),即使有一些数据丢失在我的情况下也是可以接受的)。

postgresql database-replication postgresql-11
1个回答
1
投票

当您在 db2 上执行 pg_ctl Promotion 时,db2 的第一个 walreceiver 进程将终止,如果存在一些应用延迟,第二个启动进程将尝试应用 wal 文件,在此 db2 提升为新的 master 之后。

db1 不会自动转换为 db2 的副本,您必须手动处理它。

升级db2过程中,db3不受影响。

请参阅以下链接了解更多信息:-

https://www.postgresql.org/docs/current/warm-standby-failover.html

© www.soinside.com 2019 - 2024. All rights reserved.