小编Chi*_*lax的帖子

使用逻辑复制升级 Postgres 主要版本

我们考虑了一些选项来将我们的 Postgres 服务器从当前 ( 10) 版本升级到最新 ( 14) 版本。我们决定不在主服务器上做任何事情 - 因为我们需要使用链接选项(所以就地,而不是复制),并且如果我们在新的 postgres 服务器启动后看到问题,我们无法回滚。我们认为首先进行复制会更安全。

pg_upgrade因此,我们计划使用复制来进行升级。这是我们到目前为止的计划:

  1. 在主和复制之间设置逻辑复制(因此从当前的流式复制更改)
  2. 复制完成并且它们同步后,停止复制 postgres 服务器 - 运行 Postgres 10。
  3. 执行pg_upgrade复制,然后启动它(逻辑复制将继续)
  4. 复制更新后,将复制切换到主复制,并将主复制切换到复制。
  5. 现在,所有客户端都将连接到 Postgres 14 上的复制
  6. 对新的复制\旧的主数据库执行相同的步骤(停止、pg_upgrade、启动,最后再次切换回来)

在继续之前我有一些问题:

  1. 是否可以从升级前的机制转移streaming replicationlogical replication升级前的机制?在这样做之前有什么需要考虑的吗?
  2. 我们正在考虑即使在升级后也保持复制机制的逻辑性。这是可取的吗?
  3. 该操作预计需要多长时间才能pg_upgrade完成?我知道这取决于各种参数,但是根据数据大小约为 600 GB 的事实进行粗略估计吗?由于这是复制所需的停机时间 - 所以没有备份。
  4. 这是一个好的策略吗?还是有更好的(安全、停机时间最短)选择?

在继续升级之前,请寻求有关这些问题的一些指导。

postgresql upgrade master-slave-replication postgresql-14

1
推荐指数
1
解决办法
1201
查看次数