Herramientas

Mantener un sistema de alta disponibilidad con PostgreSQL y repmgr

En la entrada de la semana pasada se explicaron los pasos necesarios para la instalación y configuración de un sistema de alta disponibilidad en PostgreSQL con repmgr. Para lo que se emplearon dos máquinas virtuales con Rocky Linux 9. En esta publicación se va a usar el clúster para ver cómo mantener un sistema de alta disponibilidad con PostgreSQL y comprobar que este funciona de forma correcta.

Comprobar el estado de las máquinas en el clúster

Una de las primeras tareas que se deben hacer una vez configurado el sistema de alta disponibilidad es comprobar el estado del clúster para comprobar que las máquinas se han sido agregadas de forma correcta. Lo que se puede comprobar en la tabla nodes de la base de datos repmgr. Para lo que se puede ejecutar la consulta SELECT * FROM repmgr.nodes; en la terminal con psql o en una máquina cliente con pgAdmin. En la siguiente captura de pantalla se puede ver el resultado de esta consulta en el clúster de ejemplo.

En este caso se pueden ver el clúster contiene los dos nodos que se habían registrado la semana pasada. Ambos nodos están activos como se puede ver en la columna active. El nodo que se ha denominado nodo2 su archivo repmgt.conf es la base de datos que está funcionando como réplica (la columna type tiene el valor standby). Por otro lado, node1 es la base de datos primaria.

Creación de una nueva base de datos de prueba

Ahora se puede crear una base de datos de prueba para comprobar que el sistema funciona y replica los datos de forma correcta. Para ello se debe seleccionar la base de datos que esté funcionando como maestra, ya que la réplica solamente funciona en modo lectura. Algo que se puede comprobar intentando crear la base de datos en la réplica.

Operación que se puede realizar sin problemas en la base de datos maestra.

Ahora si se refresca la base de datos réplica debería aparecer la nueva base de datos.

Iniciar el demonio para monitorizar el clúster

Ahora se puede iniciar el demonio de repmgr para monitorizar la red, lo que se debe hacer en ambas máquinas usando el comando

repmgrd -f repmgr.conf --verbose

Usando la opción --verbose para que muestre toda la información por pantalla.

Funcionamiento del clúster en caso de fallo

Ahora, en el caso de que el servidor réplica caiga, el servidor maestro no se ve afectado, solamente se perderá la capacidad de réplica. Si la caída es temporal al recuperarse la base de datos esta actualizará los cambios pendientes.

En el caso de que caiga la base de datos maestra y pase el tiempo indicado en el archivo repmgr.conf la réplica será promocionada como base de datos maestra. Pasando a ser el nodo principal. Una vez pase esto la base de datos original no se puede agregar al clúster, ya que no cuenta con los cambios, y es necesario crear una nueva base de datos y agregarla al clúster como réplica.

Conclusiones

En esta entrada se ha visto cómo mantener un sistema de alta disponibilidad con PostgreSQL y repmgr.


Imagen de lavivm en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper

Cualquiera que programe usa la palabra bug a diario para referirse a un fallo en…

2 días ago

BG/BB: el modelo de CLV para compras en períodos discretos

Los dos artículos anteriores de la serie cubrieron BG/NBD, el modelo para negocios donde el…

4 días ago

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

1 semana ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

2 semanas ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

2 semanas ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

3 semanas ago

This website uses cookies.