web-dev-qa-db-ja.com

Postgres 9.3から9.5へのアップグレード

Postgresを9.3から9.5に初めてアップグレードしようとしています。 2つの障害に遭遇しましたが、どのように回避するかわかりません。私は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

「データディレクトリが空ではありません!」というエラーが発生しました。ロードブロッキング#2。

このアップグレードを続行するにはどうすればよいですか?新しいサーバーに移動したくない。

5

Kevin Struckhoff からの自己回答:最初はコメントとして残されています:

最後にこのタスクに戻り、アップグレードを正常に実行しました。

結局のところ、特定のディレクトリでテーブルスペースを使用しているため、新しい9.5は古い9.3 dirsのすぐ隣にあります。

 drwx ------ 4 postgres postgres 4096 Oct 4 2014 PG_9.3_201306121 
 drwx ------ 3 postgres postgres 4096 Apr 18 11:49 PG_9.5_201510051 
1
Paul White 9

/ data/postgres95が空ですか?

そこに価値のないものがあれば、実行します

PG95=/data/postgres95
Sudo rm -rf $PG95
mkdir $PG95
chown postgres:postgres $PG95
su - postgres -c 'PGDATA=/data/postgres95; initdb

次に、同じ方法でpg_upgradeをもう一度実行しますが、代わりに-D /data/postgres95を使用します。