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

时间:2020-02-25 06:09:40

标签: python postgresql upgrade 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

1 个答案:

答案 0 :(得分:2)

您不使用pg_upgrade进行次要升级。

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

仅此而已!您还应该阅读发行说明,有时需要对数据库元数据进行一些其他修复。

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