Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I'm upgrading to Postgres 9.2.2 (from 9.1.4). When I try to upgrade the DBs using:

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

I get the following error message:

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

I've trying stopping the server, but cannot get the upgrade command to work. How to I shutdown the old postmaster?

share|improve this question

migrated from stackoverflow.com Dec 22 '12 at 8:21

This question came from our site for professional and enthusiast programmers.

3 Answers 3

On most unix systems you'll find a init script in /etc/init.d which you can use to start, restart, reload or stop unix services.

e.g.

sudo /etc/init.d/postgresql stop

If this is not available you can use pg_ctl stop

e.g.

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

More about pg_ctl

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

EDIT If you still get the error and you are sure the postmaster is no longer running (check with sudo ps aux | grep "postmaster" - should return one line only) you still have the pid file after a unclean shutdown

Remove the pidfile e.g.

> sudo -u postgres mv /var/lib/postgres/data-9.1/postmaster.pid /tmp
share|improve this answer
    
When I try pg_ctl stop, I get: pg_ctl: no database directory specified and environment variable PGDATA unset. BTW, no server seems to be running: luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres. –  Luciano Dec 18 '12 at 0:42
    
grep for postmaster –  Michel Feldheim Dec 18 '12 at 7:46
    
Updated answer with further info –  Michel Feldheim Dec 18 '12 at 13:44
    
No luck: sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster –  Luciano Dec 18 '12 at 23:23
    
Issue solved. See my answer. –  Luciano Dec 19 '12 at 0:07

The postmaster.pid should be inside the previous version's usr/local/var folder. Simply renaming this file should solve the problem.

share|improve this answer

On Ubuntu, stop the PostgreSQL service before performing the upgrade. This will stop all instances of postgres regardless of the versions installed.

service postgresql stop

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.