Postgres 9.2にアップグレードするときに古いポストマスターをシャットダウンできません


13

Postgres 9.2.2(9.1.4から)にアップグレードしています。次を使用してDBをアップグレードしようとすると:

pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres

次のエラーメッセージが表示されます。

Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories                 ok

There seems to be a postmaster servicing the old cluster.
Please shutdown that postmaster and try again.
Failure, exiting

サーバーを停止しようとしていますが、アップグレードコマンドが機能しません。古いポストマスターをシャットダウンする方法は?

回答:


11

postmaster.pid以前のバージョンの内にある必要がありますusr/local/varフォルダ。このファイルの名前を変更するだけで問題が解決します。


私もこの問題に何度か出くわしましたが、これは良い答えです。アップグレードする前にpostgresのすべてのインスタンスを停止することも適切である必要があります
ジェローム14

4

OS X Yosemiteでは、Homebrew経由でPostgreSQLをインストールした後:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

1
これは問題を解決しません。pg_ctl -D /usr/local/var/postgres/ stop戻る場合はNo such process、する必要がありrm /usr/local/var/postgres/postmaster.pidます。
アンドリュー

1

ほとんどのUNIXシステムでは、init /etc/init.dサービスを使用して、unixサービスを開始、再起動、リロード、または停止できます。

例えば

sudo /etc/init.d/postgresql stop

これが利用できない場合は、使用できます pg_ctl stop

例えば

su - postgres
bash-3.1$ pg_ctl stop  # normal stop
bash-3.1$ pg_ctl stop -m s # smart stop
bash-3.1$ pg_ctl stop -m f # fast stop
bash-3.1$ pg_ctl stop -m i # immediate stop

についての詳細 pg_ctl

http://www.postgresql.org/docs/9.1/static/app-pg-ctl.html

編集 それでもエラーが表示され、ポストマスターが実行されていないことが確実な場合(sudo ps aux | grep "postmaster"-で確認してください。1行のみを返す必要があります)

pidfileなどを削除します

> sudo -u postgres mv /var/lib/postgres/data-9.1/postmaster.pid /tmp

1
試してみるとpg_ctl stop、次のようになりますpg_ctl: no database directory specified and environment variable PGDATA unset。ところで、サーバーは実行されていないようです:luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres
ルチアーノ

ポストマスターのgrep

詳細情報で回答を更新しました

運が悪い:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
ルチアーノ

問題は解決しました。私の答えをご覧ください。
ルチアーノ

0

Ubuntuでは、アップグレードを実行する前にPostgreSQLサービスを停止します。これにより、インストールされているバージョンに関係なく、postgresのすべてのインスタンスが停止します。

service postgresql stop

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.