从 Postgres 9.3 升级到 9.5

Kev*_*off 5 postgresql upgrade

我正在尝试将 Postgres 从 9.3 升级到 9.5。我遇到了两个障碍,但不知道如何绕过它们。我将 9.3 PGDATA 设置为 /data/postgres,这是我的 RHEL 6 服务器上的一个单独文件系统。安装 9.5 并运行 initdb 后,我尝试使用以下命令行运行 pg_upgrade:

/usr/pgsql-9.5/bin/pg_upgrade -b /usr/pgsql-9.3/bin -B /usr/pgsql-9.5/bin 
  -d /data/postgres -D /var/lib/pgsql/9.5/data --link -p 5432 -P 5433 -c

此命令未通过链接参数测试,因为 9.5 PGDATA 值与 9.3 不在同一文件系统上。路障 #1。

然后我尝试使用以下命令重新初始化 9.5:

initdb -D /data/postgres95
Run Code Online (Sandbox Code Playgroud)

它错误地说“数据目录不是空的!”。路障 #2。

如何继续进行此升级?我宁愿不搬到新服务器。

Eze*_*nay 0

您确定 /data/postgres95 为空吗?

如果里面没有任何有价值的东西,那么运行

PG95=/data/postgres95
sudo rm -rf $PG95
mkdir $PG95
chown postgres:postgres $PG95
su - postgres -c 'PGDATA=/data/postgres95; initdb
Run Code Online (Sandbox Code Playgroud)

然后pg_upgrade以同样的方式再次运行,但-D /data/postgres95改为。