¿Como instanciar varias versiones de postgres en Linux?

Temas de ayuda posgres

Moderador: Jaibol Santaella

Jaibol Santaella
Mensajes: 244
Registrado: Mar Mar 17, 2015 8:28 am
Contactar:

¿Como instanciar varias versiones de postgres en Linux?

Mensaje por Jaibol Santaella » Mié May 29, 2019 1:47 pm

Para la explicación de como lograr instanciar varias versiones de postgres en un mismo servdior Linux, se presumirá que el usuario ya ha realizado la instalación de varias versiones de postgres previamente. Y para facilitar esta explicación se considerara que se pretende instanciar las versiones 9.4 / 10 / 11 de este novedoso DBM

su --> Para pasar a ser Usuario root en un terminal de linux.

su postgres --> Para ser usuario postgres

Para instanciar es necesario crear cluster de nuestras versiones. La forma correcta de clusterizar postgres es con la siguiente sintaxis:

pg_createcluster -p puerto-del-postgres versión-de-postgres nombre-del-clúster


Ejemplos:

Creando un cluster para postgres 9.4 con el nombre “9.4”

Código: Seleccionar todo

pg_createcluster -p 5432 9.4  9.4
Creando un cluster para postgres 10 con el nombre “10”

Código: Seleccionar todo

pg_createcluster -p 5433 10   10
Creando un cluster para postgres 11 con el nombre “11”

Código: Seleccionar todo

pg_createcluster -p 5434 11   11

Donde:

pg_createcluster: Comando para crear Cluster

5432 / 5433 / 5434 son los puertos asignados a cada versión postgres instalada

y los nombres de los cluster serán la misma versión.

El resultado de las operaciones anteriores serán:

Código: Seleccionar todo

pg_createcluster -p 5432 9.4 9.4

Código: Seleccionar todo

Ver Cluster Port Status Owner    Data directory              Log file
9.4 9.4     5432 down   postgres /var/lib/postgresql/9.4/9.4 /var/log/postgresql/postgresql-9.4-9.4.log

Código: Seleccionar todo

pg_createcluster -p 5433 10 10
Resultado:

Código: Seleccionar todo

Ver Cluster Port Status Owner    Data directory            Log file
10  10      5433 down   postgres /var/lib/postgresql/10/10 /var/log/postgresql/postgresql-10-10.log

Código: Seleccionar todo

pg_createcluster -p 5434 11 11
Resultado:

Código: Seleccionar todo


11  11      5434 down   postgres /var/lib/postgresql/11/11 /var/log/postgresql/postgresql-11-11.log
Para listar los cluster en nuestro sistema:

Código: Seleccionar todo

pg_lsclusters
Resultados:

Código: Seleccionar todo


Ver  Cluster Port Status Owner    Data directory               Log file
9.4  9.4     5432 down   postgres /var/lib/postgresql/9.4/9.4  /var/log/postgresql/postgresql-9.4-9.4.log
10   10      5433 down   postgres /var/lib/postgresql/10/10    /var/log/postgresql/postgresql-10-10.log
11   11      5434 down   postgres /var/lib/postgresql/11/11    /var/log/postgresql/postgresql-11-11.log
Iniciamos Cada cluster

La sintaxis para listar nuestros cluster es:

Código: Seleccionar todo

pg_ctlcluster versión-postgres nombre-del-cluster  comando-start
Ejemplos:

Código: Seleccionar todo

pg_ctlcluster 9.4 9.4 start

Código: Seleccionar todo

pg_ctlcluster 10 10   start

Código: Seleccionar todo

pg_ctlcluster 11 11   start
Reiniciamos Postgres (root)

exit --> Para cerrar usuario postgres

su root -> Para iniciar como usuario root

Reiniciamos postgres

Código: Seleccionar todo

/etc.init.d/postgres restart

Código: Seleccionar todo

su postgres
Si deseamos ingresar a la consola de postgres de la versión 9.4

Código: Seleccionar todo

psql -U postgres -p 5432
Si deseamos ingresar a la consola de postgres de la versión 10

Código: Seleccionar todo

psql -U postgres -p 5433
Si deseamos ingresar a la consola de postgres de la versión 11

Código: Seleccionar todo

psql -U postgres -p 5434
Información adicional, si por alguna razón desea eliminar un cluster la sintaxis será la siguiente:

Código: Seleccionar todo

pg_dropcluster --stop version-postgres nombre-del-cluester
Ejemplos:

Código: Seleccionar todo

 pg_dropcluster --stop 9.4  9.4

Código: Seleccionar todo

 pg_dropcluster --stop 10   10

Código: Seleccionar todo

 pg_dropcluster --stop 11   11
Por favor tenga en cuenta que deberá que si desea que otros equipos se conecten a sus bases de datos deberá
Agregar en el archivo pg_hba la lista de direcciones IP que desea permitir tengan acceso a sus Bases de Datos.

La sintaxis es:

Código: Seleccionar todo

nano /etc/postgresql/version-postgres/nombre-del-cluster/pg_hba.conf

Ejemplos:

Código: Seleccionar todo

nano /etc/postgresql/10/10/pg_hba.conf

Código: Seleccionar todo

nano /etc/postgresql/11/11/pg_hba.conf 

Código: Seleccionar todo

nano /etc/postgresql/11/11/pg_hba.conf 
Para permitir conexiones remotas diríjase al archivo postgresql.conf

Ejemplo:

Código: Seleccionar todo

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host           all        all             127.0.0.1/32          md5
192.168.10.12  all        all             192.168.10.12/32      md5
192.168.10.13  all        all             192.168.10.13/32      md5
192.168.10.14  all        all             192.168.10.14/32      md5

Código: Seleccionar todo

nano /etc/postgresql/version-postgres/nombre-del-cluster/postgresql.conf


Ejemplos:

Código: Seleccionar todo

nano /etc/postgresql/9.4/9.4/postgresql.conf

Código: Seleccionar todo

nano /etc/postgresql/10/10/postgresql.conf

Código: Seleccionar todo

nano /etc/postgresql/11/11/postgresql.conf
Descomente y sustituya la siguiente línea:
# listen_addresses = 'localhost' por listen_addresses = '*'
(no olvide eliminar el numeral)

Imagen
Fue útil este documento?,
Publica tus opiniones

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados