将Postgres 9.4.5迁移到11.1

时间:2018-12-21 16:14:30

标签: postgresql

正在寻找一种将Postgres 9.4.5迁移到最新版本11.1的方法,该方法具有尽可能少的停机时间

我们拥有的是:

  • 数据库大小-1.2TB,总行数> 4B
  • (主要)Postgres 9.4.5 在AWS(自我管理)上运行,这是一个主要实例。
  • (辅助备用数据库)使用流技术复制的辅助实例 复制
  • 常规磁盘快照和WAL归档
  • 每日逻辑 备份(pg_dump)

到目前为止,我们已经测试了两个选项:pg_dumpall / pg_restore和pg_upgrade,两个选项都可以正常工作,但要花费48小时以上才能完成。

根据文档https://www.postgresql.org/docs/current/upgrading.html#UPGRADING-VIA-REPLICATION,还有“逻辑复制”选项。但是,据我了解,9.4仅具有逻辑解码(没有复制)。因此,在我们的情况下,此选项不可用,对吗?

是否有其他选择可以迁移到v11,并尽可能减少停机时间?

2 个答案:

答案 0 :(得分:2)

我相信pg_upgrade是您的最佳选择。您没有特别提及应该出现问题的任何内容。仍然支持逻辑备份。

答案 1 :(得分:1)

更新:我已成功将9.4.20升级到11.5,没有任何问题。

但是我们可以仅仅依靠信念吗?就我而言,该应用程序具有良好的测试覆盖范围,并且我删除了发行说明中的​​重大更改。

通常,对于系统的任何重要部分,我都倾向于从主要版本到主要版本的多步升级。

对于9.4.x至11.6(今天在AWS上),它需要4个步骤(至少在开发中): * 9.5.20 * 9.6.16 * 10.11 * 11.6

应在应用程序测试期间针对某些发行说明和警告执行每个步骤。

除pg_upgrade外,还可以使用复制。