1

我正在尝试使用该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
4

1 回答 1

2

您不pg_upgrade用于小升级。

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

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

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

于 2020-02-25T06:57:24.047 回答