En ocasiones tenemos la necesidad de implementar la replicación y configurar los servidores de manera que el esclavo se convierta en el maestro de forma automática en el caso de que éste se detenga, es decir, aplicar failover.
Ésto puede resultar ser una tarea tediosa, ya sea por que no sepamos como se configura o simplemente no dispongamos del tiempo necesario para ello.
Para resolver éste inconveniente podemos usar herramientas externas, como repmgr, que nos ayude ha realizar esta configuración.
¿Qué es repmgr?
Es un conjunto de herramientas de código abierto para administrar la replicación y la conmutación por error (failover) en un clúster de servidores PostgreSQL.
Automatiza la configuración de los servidores en espera, la supervisión de la replicación y también te ayuda a realizar tareas de administración del clúster.
El paquete de herramientas incluye dos utilidades:
repmgr: una herramienta de línea de comandos, que se utiliza para tareas administrativas, tales como:
- Creación de esclavos.
- Cambiar el esclavo al modo maestro.
- Cambiar entre servidores maestros y esclavos.
- Mostrar el estado del clúster.
repmgrd: un proceso en segundo plano (daemon) que supervisa el clúster de servidores y realiza las siguientes tareas:
- Monitoreo y registro de la eficiencia de replicación.
- Cambio automático del esclavo al maestro cuando se detectan problemas en el maestro (failover).
- Enviar mensajes sobre eventos en el clúster a través de scripts definidos por el usuario.
¿Dónde podemos descargar repmgr?
En la web oficial de repmgr encontraremos información y diferentes versiones de esta herramienta de código libre.
Requisitos
Esta herramienta funciona en plataformas Linux y en la mayoría de sistemas UNIX, incluyendo Mac OS X.
Versiones
Según la versión de Postgres que utilizamos, debemos de instalar una versión u otra.
La versión 4.0 está en beta, por lo que no se recomienda usar en entornos en producción, y funciona con PostgreSQL 9.3 o superior.
La versión 3.3, es la última versión estable y funciona con PostgreSQL 10, 9.6 y 9.5 que son totalmente compatibles. Tambien es compatibles con algunas restricciones las versiones de PostgreSQL 9.4 y 9.3.
Para utilizar repmgr con PostgreSQL 9.1 y 9.2, tenemos la versión 2.0.
También podemos obtener repmgr mediante paquetes binarios en los repositorios yum de PostgreSQL para la familia de sistemas Red Hat, o para Debian y Ubuntu en los repositorios apt de nuestro sistema Linux.