15 febrero 2010

Configurar arranque de servidor PostgreSQL 8.4 en Ubuntu

Aquí se menciona brevemente cómo hacer para configurar el arranque (automático/manual/deshabilitado) del servidor PostgreSQL 8.4 en Ubuntu 9.10.

Claro esta que no quita que pueda aplicarse para otra combinación de servidor y sistema operativo, pero la siguiente configuración se ha probado en el caso de haber instalado en Ubuntu 9.10 (Karmic Koala) los siguientes paquetes con su configuración por defecto:

  • postgresql
  • postgresql-8.4
  • postgresql-client
  • postgresql-client-8.4
  • postgresql-common
  • postgresql-client-common

También recomiendo instalar los siguientes paquetes que incluyen documentación sobre la configuración y uso en formato html,

  • postgresql-doc
  • postgresql-doc-8.4

Para acceder a ésta basta con cargar en el navegador la url
file:///usr/share/doc/postgresql-doc-8.4/html/index.html, o bien se podría modificar la configurar del pgAdmin III para que acceda a la misma lo cuál explicará en un próximo artículo.
Cabe mencionar que la misma se puede encontrar en el sitio de PostgreSQL, donde habrá que prestar atención a la versión del servidor a que corresponde la documentación.

Por defecto, al instalar el servidor se crea un cluster, bajo el nombre main, en el directorio /etc/postgresql/8.4/main. Este último es el área de almacenamiento en disco a donde irán a parar las base de datos. Así pues un cluster de base de datos es una colección de bases de datos que son manejadas por una única instancia en ejecución del servidor de base de datos (ver por más información).
En el directorio mencionado es donde encontraremos los archivos de configuración a modificar.


Unos comentarios antes de modificar el arranque del servidor.
Por defecto el arranque esta configurado en modo 'automático' (auto).
Al levantar la maquina, el arranque del servidor PostgreSQL se produce al ejecutar el script /etc/init.d/postgresql-8.4, el cual a su vez ejecuta métodos (start, stop, restart, etc.) definidos en /usr/share/postgresql-common/init.d-functions. Es en éste último donde vemos cómo se procede para levantar el servidor, entre otras cosas.
Aquí podemos ver que para iniciar el servidor lee el archivo de configuración start.conf ubicado en el directorio que se mencionó más arriba.

Como escapa a la idea de este artículo, no se tratará los controles del servidor desde línea de comandos, pero cabe mencionar el servidor se puede detener/levantar/reiniciar utilizando el comando pg_ctlcluster de la siguiente manera;

  • Detener: sudo -u postgres pg_ctlcluster 8.4 main stop
  • Levantar: sudo -u postgres pg_ctlcluster 8.4 main start
  • Reiniciar: sudo -u postgres pg_ctlcluster 8.4 main restart

Otro comentario. Cuando el servidor esta levantado, el PID (id del proceso servidor) es guardado en el archivo /var/lib/postgresql/8.4/main/postmaster.pid; esto es a modo de prevenir que multiples instancias del servidor corran sobre los mismos datos, pero uno lo puede utilizar para detener/controlar el servidor.


A continuación, se muestra cómo abrir el archivo /etc/postgresql/8.4/main/start.conf para modificar el arranque del servidor PosgresSQL, teniendo presente que el usuario postgres es quien tiene permisos sobre éste.
Al abrirlo se puede ver una explicación breve de las tres variantes a optar.
A fin de que no inicie el servidor al levantar el equipo, se modificará el arranque por defecto (auto) por arranque manual (manual).

Editando el archivo como usuario postgres
tu_usuario@equipo:~$ sudo su - postgres
[sudo] password for tu_usuario:
postgres@equipo:~$ nano /etc/postgresql/8.4/main/start.conf
postgres@equipo:~$ logout
tu_usuario@equipo:~$

Editando el archivo como superusuario
tu_usuario@equipo:~$ sudo gedit /etc/postgresql/8.4/main/start.conf
[sudo] password for tu_usuario:
tu_usuario@equipo:~$

Finalmente el archivo modificado debería ser similar al siguiente.
# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
# pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
# circumvented and is only meant to be a small protection for
# accidents).

manual


Una vez hecho lo anterior habremos terminado.
De todas maneras, aquí debajo encontrarán links que puede ser de utilidad si se desea profundizar en el tema.



2 comentarios:

  1. Anónimo29/8/10

    Annnnnnnng errorreeeeeeeeeees me dan errooooooooooooores

    ResponderEliminar
  2. Anónimo20/4/11

    a MI TMB!!!!!!!!!

    ResponderEliminar

Nro de visita Cantidad de visitas recibidas