postmaster [ -B nBuffers ] [ -D DataDir ] [ -i ] [ -l ] postmaster [ -B nBuffers ] [ -D DataDir ] [ -N nBackends ] [ -S ] [ -d [ DebugLevel ] [ -i ] [ -l ] [ -o BackendOptions ] [ -p port ] postmaster [ -n | -s ] ... |
postmaster acepta los siguientes par�metros en su l�nea de comandos:
Indica el n�mero de buffers de memoria compartida que postmasterasignar� y administrar� para los procesos del servidor que inice. El valor predeterminado para esta opci�n es 64 buffers, siendo cada buffer de 8 kilobytes (o lo que sea que est� indicado en BLCKSZ en config.h).
Especifica el directorio a usar como ra�z del arbol de directorios de bases de datos. Si no se especifica -D, el nombre de directorio predeterminado es el valor de la variable de entorno PGDATA. Si PGDATA no est� especificada, entonces se utiliza el directorio $POSTGRESHOME/data. Si no se especifica ni la variable de entorno ni esta opci� de l�nea de comando, el directorio predeterminado es el utilizado al momento de la compilaci�n.
El m�ximo n�mero de procesos en el servidor (backend) que postmaster tiene permitido iniciar. En la configuraci�n predeterminada este valor est� usualmente definido en 32, y puede ser fijado hasta un valor m�ximo de 1024 si su sistema puede soportar esa cantidad de procesos. Tanto el valor predeterminado como el m�ximo puede modificarse cuando se compila Postgres (vea el archivo src/include/config.h)
Indica que el proceso de postmaster debe iniciarse en modo silencioso. Esto es, anular� la vinculaci�n con la terminal del usuario (que tiene el control) e iniciar� su propio grupo de proceso. Esta opci�n no deber�a utilizarse en conjunto con las opciones de depuraci�n ya que cualquier mensaje enviado a la salida est�ndar y a la salida de error est�ndar ser�n descartados.
Este argumento DebugLevel determina la cantidad de informaci�n de depuraci�n que producir� el servidor. Si DebugLevel es uno, postmaster rastrear� todo el tr�fico de conexi�n y nada m�s. Para niveles iguales o mayores a 2 se activa la depuraci�n y el proceso del servidor y postmaster muestran m�s informaci�n, incluyendo el entorno del servidor y tr�fico de proceso. Note que si no se especifica ning�n archivo para que los servidores del backend env�en su informaci�n, esta informaci�n ser� exhibida en la terminal de su proceso postmaster padre.
Esta opci�n habilita las comunicaciones mediante TCP/IP o mediante el socket de dominio Internet. Sin esta opci�n solamente es posible la comunicaci�n a trav�s del socket de dominio Unix local.
Este par�metro habilita la comunicaci�n mediante el socket SSL. Tambi�n es necesario especificar la opci�n -i. Adem�s, debi� habilitarse SSL en el momento de la compilaci�n.
Las opciones de postgres que se especifican en BackendOptions son pasadas a todos los procesos iniciados en el servidor por este postmaster. are passed to all backend server processes started by this postmaster. Si la cadena de opciones contiene espacios, entonces debe encerr�rsela entre comillas.
Especifica el puerto TCP/IP o la extensi�n de archivo del socket del dominio Unix local en el cual postmaster deber� esperar por conexiones solicitadas desde las aplicaciones del lado del cliente. El valor predeterminado es el especificado en la variable de entorno PGPORT o, si PGPORT no fue especificada, se toma como predeterminado el valor establecido cuando Postgres fue compilado (normalmente 5342). Si se especifica un puerto distinto del predeterminado, a todas las aplicaciones cliente (incluyendo psql) deber� especific�rseles el mismo puerto ya sea mediante las opciones de l�nea de comando o utilizando la variable de entorno PGPORT.
Existen algunas opciones de l�nea de comandos disponibles para realizar depuraciones en caso de que un proceso en el servidor termine de forma anormal. Estas opciones controlan el comportamiento de postmaster en estas situaciones, y ninguna de ellas est� pensada para ser utilizada en situaciones normales.
La estrategia usual para esta situaci�n es notigicar a todos los dem�s procesos en el servidor que deben terminar y reinicializar la memoria y sem�foros compartidos. Esto es as� debido a que un proceso de servidor que funcione de manera err�tica podr�a corromper alguno de estos recursos compartidos antes de terminar.
Estas opciones especiales son:
postmaster no reinicializar�a las estructuras compartidas. Un programador podr�a luego analizarlas con el programa shmemdoc y examinar la memoria compartida y lo estados de los sem�foros.
postmaster detendr� todos los dem�s procesos del servidor envi�ndoles la se�al SIGSTOP, pero no har� que terminene. Estos permite a los programadores del sistema realizar vuelcos de n�cleo a mano para todos los procesos del servidor.
Si aparece este mensaje, deber�a ejecutar el comando ipcclean. Una vez hecho esto, pruebe iniciar postmaster nuevamente. Si aun no funciona, probablemente necesite configurar el n�cleo (kernel) de su sistema para que pueda utilizar memoria compartida y sem�foros, tal como se describe en las notas de instalaci�n. Si ejecuta m�ltiples instancias de postmaster en un s�lo host, o tiene un kernel con muy poca memoria compartida o un l�mite de sem�foros muy peque�o, tal vez deba reconfigurarlo su kernel para incrementar sus par�metros de memoria comapartida y sem�foros.
Tal vez pueda posponer la reconfiguraci�n del kernel disminuyendo lo especificado con -B para reducir la utilizaci�n de memoria compartida por parte de Postgres, o disinuyendo lo especificado con -N para reducir la cantidad de sem�foros que utiliza Postgres. |
Si se encuentra con este mensaje, debe asegurarse de que no existen otros procesos de postmaster ejecut�ndose en el momento. La manera m�s f�cil de determinar esto es mediante el comando
% ps -ax | grep postmaster |
% ps -e | grep postmast |
Si est� seguro de que no existen otros procesos de postmaster en ejecuci�n, y aun as� sigue recibiendo este error, intente especificar un puerto diferente utilizando la opci�n -p. Tambi�n puede obtener este mensaje de error si finaliza postmaster y lo vuelve a iniciar inmediatamente utilizando el mismo n�mero de puerto; simplemente espere unos segundos hasta que el sistema operativo cierre el puerto antes de intentar nuevamente. Finalmente, puede que obtenga este mensaje de error si especifica un n�mero de puerto que su sistema operativo considere reservado. Por ejemplo, muchas versiones de Unix consideran que los puertos con n�mero menor a 1024 deben ser confiables y solo permite al superusuario tner acceso a ellos.
Una explicaci�n plausible es que otro usuario intent� iniciar un proceso postmaster en el mismo puerto el cual ha adquirido recursos compartidos y luego ha finalizado. Dado que las claves de memoria compartidas de Postgres se basan en el n�mero de puerto asignado al proceso postmaster, estos conflictos tiene m�s probabilidad de ocurrir si existe m�s de una instalaci�n en un mismo servidor. Si no hay otros procesos postmaster en ejecuci�n (vea m�s arriba), ejecute ipcclean e intente nuevamente. Si existen otros postmaster ejecut�ndose, deber� contactar a los propietarios de estos procesos para coordinar la asignaci�n de puertos y/o la remoci�n de los segmentos de memoria compartida no utilizados.
postmaster administra la comunicaci�n entre los procesos del cliente y del servidor, as� como la asignaci�n de buffers compartidos y sem�foros SysV (en m�quinas que no tengan intstrucciones del tipo test-and-set). postmaster no interact�a directamente con el usuario y debe ser iniciado como un proceso en segundo plano.
S�lo un postmaster debe estar ejecut�ndose a la vez para una instalaci�n Postgres dada. Aqu� una instalaci�n significa un directorio de base de datos y un n�mero de puerto de postmaster Se puede ejecutar m�s de un postmaster en una misma m�quina si cada uno de ellos tiene un directorio y un n�mero de puerto diferente.
Siempre que se posible evite utilizar SIGKILL para forzar la finalizaci� de postmaster. En su lugar deber�a utilizarse SIGHUP, SIGINT, o SIGTERM (la se�al predeterminada para kill(1))". La utilizaci�n
% kill -KILL |
% kill -9 |
Existen varias utilidades para resolver problemas de memoria compartida, entre las cuales se encuentran ipcs(1), ipcrm(1), y ipcclean(1).
Para iniciar postmaster utilizando los valors predeterminados, escriba:
% nohup postmaster >logfile 2>&1 & |
Para iniciar postmaster con un n�mero de puerto espec�fico y un nombre de ejecutable:
% nohup postmaster -p 1234 & |
% psql -p 1234 |
% setenv PGPORT 1234 % psql |