Hay varias posibles razones para que postmaster no pueda
inicializarse. Compruebe el fichero de registro de postmaster, o
inícielo manualmente (sin redirigir la salida estándar o la de
errores) para ver los mensajes que aparecen. Alguno de los posibles
mensajes de error son autoexplicativos, pero los hay que pueden no
serlos tanto:
FATAL: StreamServerPort: bind() failed: Address already in use
Is another postmaster already running on that port?
|
Esto normalmente significa lo que sugiere: accidentalmente ha
iniciado una segunda instancia de postmaster en el mismo puerto en el
que ya se está ejecutando uno. Sin embargo, si el mensaje de error
del núcleo no es "Address already in use" o alguna variante, puede
estar ocurriendo otro problema. Por ejemplo, el tratar de iniciar una
sesión de postmaster en un puerto de error reservado puede producir
algo como:
$ postmaster -i -p 666
FATAL: StreamServerPort: bind() failed: Permission denied
Is another postmaster already running on that port?
|
IpcMemoryCreate: shmget failed (Invalid argument) key=5440001, size=83918612, permission=600
FATAL 1: ShmemCreate: cannot create region
|
Un mensaje como éste posiblemente indica que el limite impuesto al
tamaño de las zonas de memoria compartidas es menor que área de
«buffer» que Postgres está intentando crear. (O puede significar que no
dispone de soporte para la memoria compartida de tipo SysV configurado
en su núcleo.) Como arreglo temporal puede tratar de iniciar
postmaster con un número de «buffers» menor de lo normal (parámetro -B).
Sin embargo, debería reconfigurar su núcleo para incrementar el
tamaño permitido para la memoria compartida.
Este mensaje puede aparecer cuando trate de iniciar varias sesiones de
postmaster en la misma máquina, si el total de espacio necesario
excede el límite impuesto por el núcleo.
IpcSemaphoreCreate: semget failed (No space left on device) key=5440026, num=16, permission=600
|
Un mensaje como éste
no significa que se haya
quedado sin espacio en el disco; significa que la cantidad máxima de
semáforos permitidos por el núcleo para el SysV es menor que la
cantidad que Postgres intenta crear. Como antes, puede evitar este
problema iniciando el postmaster con un numero de procesos «backend»
menor (parámetro -N), pero sería mejor que incrementara el límite
impuesto por el núcleo.