PostgreSQL Replicación Bidireccional (BDR)

PostgreSQL-2ndQuadrant
PostgreSQL es uno de los gestores de base de datos transaccional más usados, en esta entrada explicaremos la instalación y configuración de PostgreSQL Multi-master mediante BDR (Bi-Directional Replication) que resulta interesante cuando queremos tener una base de datos en alta disponibilidad.

Una de las desventajas que tiene PostgreSQL es que por defecto no es posible configurar PostgreSQL en replicación Master – Master, por tanto se debe usar otras herramientas para que sea posible como Bucardo o Bi-Directional Replication, como es en este caso. PostgreSQL BDR no es más que un PostgreSQL 9.4 parcheado por 2ndQuadrant que lo que hace es que añade una extensión a PostgreSQL y se crea un grupo donde se meten los nodos que queremos replicar.

 

PostgreSQL Replicación (BDR)

Diagrama de funcionamiento de PostgreSQL BDR

Ejemplo de configuración

Se va a configurar dos nodos Master A (10.0.0.1) y Master B (10.0.0.2) sobre Debian 8.6 Jessie.

Dependecias

Instalación

Master A y Master B

Paramos los servicios de PostgreSQL en ambos nodos:

Procedemos a la configuración de PostgreSQL que se encuentra en “/etc/postgresql/9.4/main/postgresql.conf”.

Opciones de logging. Desactivadas por defecto, actívalas si necesitas hacer debugging:

Opciones para evitar conflictos.

Master A

Configuración de accesos. Configuramos el fichero “/etc/postgresql/9.4/main/pg_hba.conf”.

El usuario que hará la replicación será postgres. Ya podemos levantar el servicio de PostgreSQL:

Creamos la base de datos a replicar

Añadimos la extensión a la base de datos

Creamos el grupo BDR

Master B

Configuración de accesos. Configuramos el fichero “/etc/postgresql/9.4/main/pg_hba.conf”.

El usuario que hará la replicación será postgres. Ya podemos levantar el servicio de PostgreSQL:

Creamos la base de datos a replicar

Añadimos la extensión a la base de datos

Añadimos el nodo al grupo creado en el Master A

Conclusiones

Configurar una replicación BDR multi-master es muy sencilla aunque no es la única opción, existen otras herramientas como Bucardo, rubyrep, PgPool-II, etc. Además, hay que tener en cuenta que hay funciones que hemos dejado sin comentar y una lista de sentencias que no se replican y te tocará hacerlo a mano en todos los nodos que pertenezcan al grupo BDR.

Para terminar, desde 2ndQuadrant han escrito en una entrada que en PostgreSQL 9.6 permitirá BDR sin necesidad de instalar un PostgreSQL parcheado por ellos solo será una extensión más.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *