Replicación Master - Slave con PostgreSQL 9.4 (Ubuntu 14.04)

El escenario para el ejemplo son dos (02) servidores con las siguientes IP 192.168.1.191 and 192.168.1.171 con Ubuntu 14.04 y PostgreSQL 9.4

Debe estar instalado el PosgreSQL 9.4, por favor leer: Instalación PostgreSQL 9.4

Paso1: Se debe asegurar que funcione la conexión SSH libremente entre ellas.

Ingrese con el usuario Postgres en el terminal:

sudo su - postgres

Genere ssh key:

ssh-keygen

Copiar el ssh key en el servidor contrario:

ssh-copy-id opposite_ip_address

Nota: debe realizar el paso anterior en ambos servidores.

Paso2: Configuración del nodo Maestro.

Crear cuenta para replicación
psql -c "CREATE USER rep REPLICATION LOGIN CONNECTION LIMIT 1 ENCRYPTED PASSWORD 'yourpassword';"

Modificar el archivo de acceso postgres:

vi /etc/postgresql/9.4/main/pg_hba.conf

Agregando la siguiente linea:

host    replication     rep     IP_address_of_slave/32   md5

Y modifique el archivo de configuración postgres:

vi /etc/postgresql/9.4/main/postgresql.conf
El valor de configuración debe ser:

listen_addresses = 'localhost,IP_address_of_THIS_host'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 1
hot_standby = on

Y ahora reinicie el servidor Maestro:

service postgresql restart

Paso3: Configuración del nodo esclavo

Detener PostgreSQL:

service postgres stop

Modifique el archivo de acceso postgres:

vi /etc/postgresql/9.4/main/pg_hba.conf

Agregue la siguiente línea:

host    replication     rep     IP_address_of_master/32  md5

Y modifique archivo configuración postgres:

vi /etc/postgresql/9.4/main/postgresql.conf

Los valores del archivo son los siguientes:

listen_addresses = 'localhost,<span class="highlight">IP_address_of_THIS_host</span>'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 1
hot_standby = on

Paso4: Iniciar la replicación

En el servidor Maestro, ejecutar los siguientes comandos para iniciar la replicación:

psql -c "select pg_start_backup('initial_backup');"
rsync -cva --inplace --exclude=*pg_xlog* /var/lib/postgresql/9.1/main/ slave_IP_address:/var/lib/postgresql/9.1/main/
psql -c "select pg_stop_backup();"

En el servidor Esclavo, crear archivo recovery.conf:

vi /var/lib/postgresql/9.4/main/recovery.conf
 
Y agregar las siguientes líneas:

standby_mode = 'on'
primary_conninfo = 'host=master_IP_address port=5432 user=rep password=yourpassword'
trigger_file = '/tmp/postgresql.trigger.5432'

Y reiniciar Servidor Esclavo para completar la configuración:

service postgresql start

Solo queda realizar las pruebas...


Fuente: https://sonnguyen.ws/replication-master-slave-with-postgresql-9-4-in-ubuntu-14-04/


Comentarios

  1. Hola, muchas gracias por este manual, estoy intentando configurar slony en ubuntu server 16 con postgresql 9.5 he seguido tus pasos pero me lanza un error constantemente en el nodo esclavo psql:clould not connect to server: no existe el archivo o el directorio is the server running locally and accepting.

    he reinstalado el S.O. y vuelto a empezar pero nada siempre me da el mismo error.

    Gracias de antemano

    ResponderEliminar
  2. Hola!!!, parece un problema con pg_hba.conf... No tienes que reinstalar sino revisar ese archivo y el postgresql.conf...

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Cómo configurar Node.js y Npm detrás de un proxy web corporativo

Repositorios oficiales - Debian 9

Recuperar o restablecer la clave de administrador en OSTicket