Tidak dapat mematikan kepala kantor pos lama saat meningkatkan ke Postgres 9.2

13

Saya meningkatkan ke Postgres 9.2.2 (dari 9.1.4). Ketika saya mencoba memutakhirkan DB menggunakan:

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

Saya mendapatkan pesan kesalahan berikut:

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

Saya sudah mencoba menghentikan server, tetapi tidak dapat menjalankan perintah pemutakhiran. Bagaimana cara saya mematikan postmaster lama?

Luciano
sumber

Jawaban:

11

The postmaster.pidharus berada di dalam versi sebelumnya usr/local/varfolder. Cukup mengganti nama file ini harus menyelesaikan masalah.

Luciano
sumber
Saya telah menemukan masalah ini beberapa kali juga dan ini adalah jawaban yang bagus. Menghentikan semua contoh postgres sebelum meningkatkan juga harus relevan
Jerome
4

Di OS X Yosemite, setelah menginstal PostgreSQL via Homebrew:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Kapal Sarah
sumber
1
Ini tidak memperbaiki masalah. Jika pg_ctl -D /usr/local/var/postgres/ stopkembali No such process, maka Anda harus rm /usr/local/var/postgres/postmaster.pid.
Andrew
1

Pada sebagian besar sistem unix Anda akan menemukan skrip init /etc/init.dyang dapat Anda gunakan untuk memulai, memulai kembali, memuat ulang, atau menghentikan layanan unix.

misalnya

sudo /etc/init.d/postgresql stop

Jika ini tidak tersedia, Anda dapat menggunakan pg_ctl stop

misalnya

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

Lebih tentang pg_ctl

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

EDIT Jika Anda masih mendapatkan kesalahan dan Anda yakin bahwa kepala kantor pos tidak lagi berjalan (tanyakan sudo ps aux | grep "postmaster"- harus mengembalikan satu baris saja) Anda masih memiliki file pid setelah shutdown yang tidak bersih

Hapus misalnya pidfile

> sudo -u postgres mv /var/lib/postgres/data-9.1/postmaster.pid /tmp
Michel Feldheim
sumber
1
Ketika saya mencoba pg_ctl stop, saya mendapatkan: pg_ctl: no database directory specified and environment variable PGDATA unset. BTW, tidak ada server tampaknya berjalan: luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres.
Luciano
grep untuk kepala kantor pos
Jawaban yang diperbarui dengan info lebih lanjut
Tidak beruntung:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
Luciano
Masalah terpecahkan. Lihat jawaban saya.
Luciano
0

Di Ubuntu, hentikan layanan PostgreSQL sebelum melakukan peningkatan. Ini akan menghentikan semua instance postgres terlepas dari versi yang diinstal.

service postgresql stop

scarver2
sumber