标签: pg-logical

使用复制服务器升级Postgres主要版本

我计划将我的数据库从 Postgres 10 升级到 Posgres 14。为了减少停机时间,我计划使用复制来实现同样的目的。计划(简而言之)是:

  1. 使用转储数据pg_dumpall
  2. 终止在复制上运行的 Postgres 服务
  3. 设置新的 Postgres 14 服务
  4. 从步骤 1 中创建的转储中恢复数据
  5. 设置与主数据库的逻辑复制以使数据保持最新
  6. 将复制设置为主复制,应用程序开始连接到复制。
  7. 终止在旧主服务器上运行的 Postgres 服务,并将其也升级到 14。
  8. 在新主(旧复制)和新复制之间设置流式复制。

对此我有几个问题:

  1. 是否建议进行转储并恢复,或者让逻辑复制从头开始处理完整的复制(DDL 除外)?就可能需要的时间而言,哪个是更好的选择?我们有接近 650GB 的数据。我认为转储已被压缩,但我相信恢复它们(在同一台机器上)仍然需要时间。
  2. 我是否需要进行一些设置以确保复制从转储点之后开始,或者是否会得到处理?
  3. 我发现逻辑复制的一个限制是它不复制序列。为此,我相信,在切换之前 - 我可以将序列增加一个非常大的数字以确保不存在冲突?
  4. 我还看到了一个pglogical可以用于设置的扩展。尽管如此,我还没有深入挖掘。根据您的经验,它是否具有任何额外的优势\是否会使设置更容易?
  5. 尽管我认为这取决于不同的参数,但在主数据库和主数据库同步之前,完成如此大大小的数据库的恢复\复制通常需要多长时间?

postgresql replication upgrade pg-logical

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

标签 统计

pg-logical ×1

postgresql ×1

replication ×1

upgrade ×1