Postgres 9.2'ye yükseltme yaparken eski posta yöneticisi kapatılamıyor


13

Postgres 9.2.2'ye (9.1.4'ten) geçiyorum. Kullanarak DBs yükseltmeye çalıştığınızda:

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

Aşağıdaki hata iletisini alıyorum:

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

Sunucuyu durdurmaya çalışıyorum, ancak yükseltme komutunu çalıştıramıyorum. Eski posta yöneticisini nasıl kapatırım?

Yanıtlar:


11

postmaster.pidBir önceki sürümün içeride olmalıdır usr/local/varklasöründe. Sadece bu dosyayı yeniden adlandırmak sorunu çözmelidir.


Bu sorunla da birkaç kez karşılaştım ve bu iyi bir cevap. Yükseltmeden önce tüm postgres örneklerini durdurmak da uygun olmalı
Jerome

4

OS X Yosemite'de, PostgreSQL'i Homebrew üzerinden kurduktan sonra:

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

1
Bu sorunu çözmez. Eğer pg_ctl -D /usr/local/var/postgres/ stopgeri dönerse No such process, yapmalısınız rm /usr/local/var/postgres/postmaster.pid.
Andrew

1

Çoğu unix sisteminde /etc/init.d, unix hizmetlerini başlatmak, yeniden başlatmak, yeniden yüklemek veya durdurmak için kullanabileceğiniz bir init betiği bulacaksınız .

Örneğin

sudo /etc/init.d/postgresql stop

Bu mevcut değilse kullanabilirsiniz pg_ctl stop

Örneğin

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

Hakkında daha ayrıntılı pg_ctl

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

DÜZENLEME Hala hatayı alıyorsanız ve posta yöneticisinin artık çalışmadığından eminseniz (ile kontrol edin sudo ps aux | grep "postmaster"- yalnızca bir satır dönmelidir) Temiz olmayan bir kapatma işleminden sonra hala pid dosyanız var

Pidfile dosyasını kaldırın örn.

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

1
Ben çalıştığımda pg_ctl stopalıyorum: pg_ctl: no database directory specified and environment variable PGDATA unset. BTW, hiçbir sunucu çalışıyor gözüküyor: luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres.
Luciano

posta müdürü için grep

Daha fazla bilgi ile güncellenmiş cevap

Şans yok:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
Luciano

Sorun çözüldü. Cevabımı gör.
Luciano

0

Ubuntu'da, yükseltme işlemini gerçekleştirmeden önce PostgreSQL hizmetini durdurun. Bu, yüklü sürümlere bakılmaksızın tüm postgres örneklerini durduracaktır.

service postgresql stop

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.