Estoy ejecutando Ubuntu 12.04 en Oracle VirtualBox. Hace un par de meses, instalé el servidor PostgreSQL versión 9.1 en mi máquina. Hace poco, supe que el servidor PostgreSQL 9.3 es compatible con los tipos de datos JSON, así que decidí actualizar.
Actualicé a 9.3 siguiendo las instrucciones aquí:
https://wiki.postgresql.org/wiki/Apt
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3
Este servidor instaló la versión 9.3 en mi máquina junto con la versión 9.1. Ejecutar pg_lsclusters después de un nuevo arranque da:
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
Luego realicé el siguiente mantenimiento posterior a la actualización: exporté varias tablas de mi servidor 9.1 con pg_dump y las restauré a mi servidor 9.3. Luego abrí mis archivos de configuración para 9.1 y 9.3 en /etc/postgresql/$VERSION/main/postgresql.conf
e intercambié sus números de puerto para que mi cliente psql se conecte al nuevo servidor de forma predeterminada.
Mi pregunta es esta Tanto 9.1 como 9.3 comienzan en el arranque. Me gustaría evitar que 9.1 se inicie automáticamente, ya que ocupa aproximadamente el 5% de la memoria de mi sistema. ¿Cómo puedo hacer esto?
Recursos consultados:
La página de documentos de PostgreSQL al iniciar un servidor me señala al directorio init.d estándar. Mi directorio init.d contiene el script postgresql
. Parece que este script se puede configurar para lanzar solo una versión, pero el cambio requerido no es obvio para mí.
http://www.postgresql.org/docs/9.1/interactive/server-start.html
La publicación a continuación fue muy informativa, pero muestra cómo eliminar un clúster, no cómo deshabilitar uno en el inicio. Me gustaría dejar mi clúster más antiguo instalado, ya que es posible que desee recuperar más información de él.
Creo que tengo varios servidores postgresql instalados, ¿cómo identifico y elimino los 'extra'?
He considerado escribir un script para matar el servidor una vez que el sistema ha terminado de cargarse, pero esto parece ineficiente. ¿Hay una forma más limpia de deshabilitar la versión 9.1 en el arranque?
fuente
Debian creó varios scripts (como las utilidades de clúster pg_ *) para simplificar la ejecución de múltiples versiones o instalaciones de PostgreSQL en un solo servidor, por lo que esto no está documentado en postgresql.org.
No estoy seguro de si el propio
.deb
paquete de PostgreSQL usa el mismo mecanismo de inicio que Debian, pero si mira el paquete que tengo, si crea/etc/init.d/postgresql-9.1
(incluso si es un archivo vacío)/etc/init.d/postgresql
supondrá que desea controlar esa versión por separado y no lo hará. iniciarlo por defecto. Todavía puedes comenzar conpara anular la búsqueda de versión.
fuente
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 down postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log