使用 pg_upgrade 从 11.1 升级到 11.6 的 postgres 问题

Issue in postgres upgrade from 11.1 to 11.6 using pg_upgrade

我正在尝试使用 pg_upgrade 工具从一个次要版本 (11.1) 升级到另一个次要版本 (11.6),但在以下命令中失败:

su - postgres -c '/usr/pgsql-11/bin/pg_upgrade -d /opt/collabnet/teamforge/var/pgsql/11.1/data -D /opt/collabnet/teamforge/var/pgsql/11.6/data -b /usr/pgsql-11/bin -B /usr/pgsql-11/bin'

出现以下错误:

Performing Consistency Checks

Checking cluster versions                                   ok

Cannot upgrade to/from the same system catalog version when
using tablespaces.
Failure, exiting

以及 postgresql.log 文件中的以下错误:

could not open directory "pg_tblspc/16400/PG_11_201809051": No such file or directory

关于如何使用相同的 pg_upgrade 工具克服它有什么想法吗?

pg_upgrade_server.log

could not open directory "pg_tblspc/16400/PG_11_201809051": No such file or directory

您没有使用 pg_upgrade 进行较小的升级。

只需停止服务器,将 11.1 二进制文件替换为 11.6 二进制文件(您实际上应该使用 11.7)并启动服务器。 “替换二进制文件”是指您应该将 PostgreSQL 11.6 版本安装在与 11.1 版本相同的目录中,从而覆盖以前的安装。

就是这样!您还应该阅读发行说明,有时需要对数据库元数据进行一些额外的修复。

您遇到的错误是因为您正在使用表空间。在每个表空间中,PostgreSQL 创建一个子目录,其名称包含 目录版本。在 pg_upgrade 期间,在每个表空间中创建一个新的此类子目录。如果目录版本相同,这当然行不通。