首页 > 解决方案 > 将 Postgres Primary/Standby 从 11 升级到 12

问题描述

我正在尝试将 Postgres 从 11 升级到 12。

旧数据目录 - /var/lib/pgsql/11/data

新数据目录 - /var/lib/pgsql/12/data

使用 pg_upgrade --link 升级主节点后(主节点和备用节点仍然关闭),我按照手册的建议从主节点和新旧数据目录上方发出 rsync 命令。rsync --archive --delete --hard-links --size-only --no-inc-recursive old_cluster new_cluster remote_dir

就我而言, rsync --archive --delete --hard-links --size-only --no-inc-recursive /var/lib/pgsql/11/data /var/lib/pgsql/12/data test-标准:/var/lib/pgsql

-- 并且 remote_dir 位于备用集群上的新旧集群目录之上- 根据手册。

但是,我看到在备用 ie/var/lib/pgsql/data 上的 /var/lib/pgsql 下创建了一个数据目录,而不是在 /var/lib/pgsql/12 下创建了一个数据目录

我错过了什么?

此外,我的 postgresql.conf 已注释所有内容,所有自定义设置都在 conf.d 目录下,该目录由 postgresql.conf 中的 include_dir ='conf.d' 指定不是recovery.conf,我可以简单地将带有primary_connect信息的recovery.conf文件放在我的conf.d目录中吗?任何关于如何工作的经验?

提前致谢!

标签: postgresql

解决方案


显然,您不能使用 rsync 方法来重建备用数据库以进行重大升级,否则会出现数据文件不兼容错误。pgbasebackup 是你最好的选择。(也快得多)


推荐阅读