No se puede cerrar el antiguo administrador de correo al actualizar a Postgres 9.2


13

Estoy actualizando a Postgres 9.2.2 (desde 9.1.4). Cuando intento actualizar las bases de datos usando:

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

Me sale el siguiente mensaje de error:

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

Intenté detener el servidor, pero no puedo hacer que el comando de actualización funcione. ¿Cómo apago el antiguo administrador de correo?

Respuestas:


11

El postmaster.piddebe estar dentro de la usr/local/varcarpeta de la versión anterior . Simplemente cambiar el nombre de este archivo debería resolver el problema.


También me he encontrado con este problema un par de veces y esta es una buena respuesta. También debería ser pertinente detener todas las instancias de postgres antes de la actualización
Jerome

4

En OS X Yosemite, después de haber instalado PostgreSQL a través de Homebrew:

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

1
Esto no soluciona el problema. Si pg_ctl -D /usr/local/var/postgres/ stopregresa No such process, entonces deberías rm /usr/local/var/postgres/postmaster.pid.
Andrew

1

En la mayoría de los sistemas Unix, encontrará un script de inicio en el /etc/init.dque puede usar para iniciar, reiniciar, recargar o detener servicios de Unix.

p.ej

sudo /etc/init.d/postgresql stop

Si esto no está disponible, puede usar pg_ctl stop

p.ej

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

Más sobre pg_ctl

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

EDITAR Si aún recibe el error y está seguro de que el administrador de correo ya no se está ejecutando (consulte con sudo ps aux | grep "postmaster"- solo debe devolver una línea) todavía tiene el archivo pid después de un cierre impuro

Eliminar el archivo pid

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

1
Cuando intento pg_ctl stop, consigo: pg_ctl: no database directory specified and environment variable PGDATA unset. Por cierto, hay un servidor parece estar funcionando: luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres.
Luciano

grep para postmaster

Respuesta actualizada con más información

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

Problema resuelto. Mira mi respuesta.
Luciano

0

En Ubuntu, detenga el servicio PostgreSQL antes de realizar la actualización. Esto detendrá todas las instancias de postgres independientemente de las versiones instaladas.

service postgresql stop

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.