我正尝试使用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
答案 0 :(得分:2)
您不使用pg_upgrade
进行次要升级。
只需停止服务器,将11.1二进制文件替换为11.6二进制文件(实际上应该使用11.7),然后启动服务器。 “替换二进制文件”是指您应该在与11.1版本相同的目录中安装PostgreSQL的11.6版本,从而覆盖以前的安装。
仅此而已!您还应该阅读发行说明,有时需要对数据库元数据进行一些其他修复。
您遇到的错误是因为您正在使用表空间。 PostgreSQL在每个表空间中创建一个子目录,该子目录的名称包含目录版本。在pg_upgrade
期间,将在每个表空间中创建一个新的此类子目录。如果目录版本相同,这当然是行不通的。