Administrando replicas en PostgreSQL

Tema: 

La versión 9.0 de PostgreSQL agregó una de las características más esperadas: Replicación integrada.

Aunque antes de la versión 9.0 uno podía tener replicas a través de herramientas como slony, londiste, pgpool y muchos mas; para el caso mas simple y común (en el que el servidor esclavo debe ser una réplica exacta del maestro) requería mas configuración de lo necesario. También era posible tener una réplica "casi" completa con menos configuración usando la técnica que conocemos como "warm standby" (http://www.postgresql.org/docs/8.4/static/warm-standby.html) pero este servidor no podía contestar consultas y tampoco estaba listo para reemplazar al maestro en caso de falla debido a que siempre estaba atrasado en al menos un segmento de WAL (alrededor de 16Mb y por lo tanto algunas transacciones).

Pero aun con lo que trae la versión 9.0 (un flujo continuo de replicación) para algunos es un misterio como configurar la réplica o como realizar procedimientos de switchover o failover. Siendo estas tareas tan importantes, y una de las principales razones para tener réplicas, en 2ndQuadrant hemos creado una herramienta que facilita esas tareas: repmgr (http://projects.2ndquadrant.com/repmgr).

La herramienta se puede usar para clonar un servidor (crea la réplica), promover un servidor (convertir un esclavo en maestro), decirle a los demas servidores en el cluster que detecten y sigan al nuevo maestro. También tiene un componente llamado repmgrd que se encarga de monitorear la réplica y nos dice cuan lejos (en tiempo y en bytes) están los esclavos del maestro.

Esta herramienta, que tiene licencia GPL, puede usarse en scripts para automatizar estas tareas dependiendo de las necesidades de cada uno. Espero que les sea útil.