Failover para Streaming Replication

From: Andrés P(dot)P(dot) <solopostgres(at)gmail(dot)com>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Failover para Streaming Replication
Date: 2016-05-11 21:32:51
Message-ID: CAHohBGtJ-kmPaQbfKn37SBApRPM3ARB2+wJ_QbXucE+b4RQb1w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas Tardes Estimad(at)s

Necesito orientación para habilitar failover en el tema streaming
replicación.... sin WAL..

Escenario:

Un Master (192.168.10.1) (ref nodo1)
Un Esclavo (192.168.10.2) (ref nodo2)

-------------------------------------------------------------------------------------------

*Master: postgres.conf*

wal_level = hot_standby
fsync = on
synchronous_commit = on
wal_sync_method = fsync
max_wal_senders = 3
wal_keep_segments = 32
hot_standby = on *-- (*)*
archive_mode = off

*Master: pg_hba.con*f

host replication rep 192.168.10.2/32 trust

-------------------------------------------------------------------------------------------

*Esclavo: postgres.conf*

wal_level = hot_standby
fsync = on
synchronous_commit = on
wal_sync_method = fsync
max_wal_senders = 3
wal_keep_segments = 32
hot_standby = on
archive_mode = off

*Esclavo : recovery.conf*

standby_mode = 'on'
primary_conninfo = 'host=192.168.10.1 port=5432 user=rep'
trigger_file = '/mi_path_data/pg_failover_trigger'

-------------------------------------------------------------------------------------------

*(*) *..Tengo la duda de si en el Master deba habilitarse este parámetro
pero tomé la conf de un ejemplo de alguien que tenía iguales el
postgres.conf en maestro y esclavo y le funcionaba.......... y en mi caso
también funcionó.. (o talvez no tuvo ningún efecto en el buen
funcionamiento).....

La configuración anterior me permitió hacer pruebas que fueron exitosas en
cuanto a lo que replicación se refiere... quedando el master para las
transacciones.. y el esclavo como lectura.
Sin embargo, ahora necesito planificar un failover (manual)... sin usar
pgpool o repmngr o pgHA.. o herramientas similares. Googleando me encontré
con una solución que indicaba que ante una caída del Master simplemente
había que crear en el esclavo el archivo pg_failover_trigger especificado
en el recovery.conf del esclavo..... Al hacer esto el esclavo dejaba de
ser esclavo y se transformaba en Maestro...... lo que me parece muy
simple para ser cierto... y me deja dudas respecto a lo que sucede durante
ese cambio y después para volver a la modalidad original una vez que el
Maestro se recupere.. (aún no pruebo esta sugerencia del archivo trigger)..

Me pueden orientar al respecto?.... qué se debe hacer manualmente ante
una caída del maestro??.... qué se modifica en el esclavo?...
postgres.conf, pg_hba.conf, recovery...etc......se debe reiniciar el PG del
esclavo?...
Qué hago cuando el maestro(nodo1) vuelva a estar operativo?.. cómo
actualizo al maestro y como le vuelvo a dar el control inicial dejando
nuevamente al nodo2 como esclavo?....

*Me interesa entender el procedimiento manual para luego pensar en
habilitar algo automático..*..

Perdonen lo extenso, pero siempre he preferido dar los detalles cuando
planteo mis consultas...

Slds.
AP.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gerardo Herzig 2016-05-12 02:47:26 Re: Failover para Streaming Replication
Previous Message Alberto Cuevas 2016-05-10 23:49:37 Guadar y leer imagenes