sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo instalar múltiples servidores PostgreSQL en RedHat Linux

Si tiene un servidor Linux de la familia RedHat (incluidos CentOS y Fedora), podría envidiar la forma en que las distribuciones Debian/Ubuntu manejan la administración de clústeres de PostgreSQL.

Si bien no es fácil instalar diferentes versiones de PostgreSQL en un mismo servidor RedHat Linux usando RPMs, es mucho más sencillo instalar varias instancias de PostgreSQL (servidores) y, al mismo tiempo, aprovechar la infraestructura de servicios.

Una vez que haya configurado la instalación de RPM, siguiendo las instrucciones que encontrará en el Repositorio YUM de PostgreSQL, notará que el proceso creará dos archivos entre los otros:

  • /etc/init.d/postgresql :script de inicio para el servidor PostgreSQL
  • /etc/sysconfig/pgsql/postgresql :configuración del sistema para el servicio postgresql

De forma predeterminada, el directorio de datos de PostgreSQL (PGDATA ) apunta a /var/lib/pgsql/data directorio. Es posible cambiarlo modificando el /etc/sysconfig/pgsql/postgresql archivo.

Supongamos que queremos instalar dos servidores PostgreSQL en el mismo RedHat Linux, agregando un segundo servidor al predeterminado que se utilizará para fines de desarrollo. Llamaremos a esto postgresql-devel . Se instalará en el /var/lib/pgsql/data-devel y se ejecutará en el puerto 5433.

Creamos un enlace simbólico al principal postgresql script de inicio y llámelo postgresql-devel :


cd /etc/init.d/
ln -s postgresql postgresql-devel

Luego empezamos a llenar el postgresql-devel archivo de configuración en el /etc/sysconfig/pgsql directorio. Es importante tener en cuenta que el script de inicio y el archivo de configuración del sistema tienen el mismo nombre .


cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF

Una vez hecho esto, puede inicializar el directorio de datos ejecutando:/etc/init.d/postgresql-devel initdb o simplemente service postgresql-devel initdb .

Del mismo modo, puede controlar el inicio y el cierre del servicio ejecutando, respectivamente:

  • service postgresql-devel start
  • service postgresql-devel stop

Puede agregar/eliminar el script desde el inicio y el apagado del sistema usando chkconfig de la misma manera que lo haría con otros servicios.

El wiki de PostgreSQL contiene una página detallada sobre este tema, y ​​le sugiero que la lea junto con esta. Sin embargo, este sencillo artículo le muestra cómo integrar fácilmente varias instancias de PostgreSQL en el mismo servidor Linux y administrarlas utilizando la infraestructura de servicios estándar de RedHat (gracias al gran trabajo realizado por Devrim Gunduz).