Re: [pgsql-es-ayuda] Failover para Streaming Replication
> > Buenas Tardes Estimad@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) > > 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.. Hasta ahi es cierto. Crear ese archivo en la replica desliga al slave del master, o sea lo convierte en "master", pero ya no guarda ninguna relacion con el "otro master". Ambas instancias de postgres comenzaron a diverger una de otra, y ya no puedes "retomar" la condicion de "master - slave", a menos que hagas todo de nuevo. De manera nativa, streaming replication no tiene ningun mecanismo de failover ni switch-over. Entonces, suponiendo un failover (o un switch-over planificado), podrian pensarse los siguientes pasos: 1) Bajas (o se pierde) el nodo1 2) "toucheas" el archivo trigger_failover en nodo2, o su comando equivalente "pg_ctl promote" (tambien en nodo2) 3) Cambias la ip del nodo1, o haces los ajustes necesarios en tus DNS 4) Te aseguras que el nodo1 no vuelva a levantar, o le cambias la IP. Cuando el nodo1 vuelva a estar operativopues tendras que recrear streaming replication nuevamente, con tu nodo2 apuntando su replica al nodo1. Esto te dejara la cosa lista para hacer un "switch back", o sea poner operativo tu nodo1 nuevamente como master. HTH Gerardo - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
[pgsql-es-ayuda] Failover para Streaming Replication
Buenas Tardes Estimad@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 hostreplication rep 192.168.10.2/32trust --- *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.