PostgreSQL 9.2 - 9.6 零停机升级

Pra*_*hat 9 postgresql upgrade

我必须从 PostgreSQL 9.2 升级到 9.6。以下是我面临的挑战:

  1. 由于我们有流式复制设置,并且PostgreSQL在流式复制模式下不支持从低到高的版本升级,当我升级主时,我必须重建从属,这需要3个小时。我没有那个时间可以闲下来。在任何给定的时间,我们都需要一个从站和一个主站可用。有没有其他方法可以升级而不必重建从属设备,使用流式复制?

  2. 为了构建逻辑复制,我们考虑使用 slony 但 slony 有一些限制,因为它不会自动复制:

    • 对大对象 (BLOBS) 的更改
    • DDL 命令所做的更改
    • 对用户和角色的更改
      ……我们的应用程序具有连续的创建命令。所以我们不能使用 slony。

请提出一些建议,以避免从属重建,并以最少的停机时间进行升级,并准备好一主一从。

Loh*_*pta 1

升级数据库需要服务器停机。为了最大限度地减少停机时间,我建议您在新服务器上安装较新的版本,在该服务器上创建复制设置,并在此处转储旧实例中的所有数据,然后更改服务器指向,以便应用程序指向新服务器以连接到数据库。

  • 嗯,我们最近使用“pg_upgrade”将 9 TB 数据库从 9.3 升级到 9.6。花费了几分钟(主站和从站加起来),而仅进行转储就需要 3 个多小时。 (3认同)