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

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

3 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

5 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.