You are on page 1of 14

UNIVERSIDAD AUTÓNOMA DE CHIAPAS

FACULTAD DE NEGOCIOS, CAMPUS IV


LICENCIATURA EN INGENIERÍA EN DESARROLLO Y
TECNOLOGÍAS DE SOFTWARE
CARRERA

TÓPICOS AVANZADOS DE BASE DE DATOS


MATERIA

MCC. JESUS ARNULFO ZACARIAS SANTOS


CATEDRÁTICO

REPLICACION MULTI-MASTER
(POSTGRES - PGLOGICAL)
TEMA O ACTIVIDAD

ERWIN SANTIAGO DELGADO CORDERO – B210170


CESAR RENE CASTELLANOS MENDEZ – B210183
FERNANDO CRUZ HERNANDEZ – B210119
RUBEN CONSTANTINO RAMOS – B210088
DIEGO MANUEL WONG GARCIA - B210140
ALUMNO - MATRICULA

5D
GRADO Y GRUPO
Introducción.

La replicación maestro a maestro, también conocida como replicación

bidireccional, es un enfoque de configuración en PostgreSQL que permite

que dos nodos (o servidores) actúen simultáneamente como maestros.

Esto significa que ambos nodos son capaces de aceptar tanto

operaciones de lectura como de escritura. La replicación maestro a maestro

es una técnica avanzada que proporciona mayor disponibilidad y

rendimiento en comparación con una configuración de replicación maestro-

esclavo. Es decir, ambos nudos pueden aceptar operaciones de escritura y

lectura y cualquier cambio realizado en un nodo se replica en el otro.


REPLICACION MULTI-MASTER.

La actividad se realizó en dos máquinas virtuales; el software que se utilizo

fue Oracle VM-Virtual Box.

1. Se instaló PostgreSQL 14.9 en las dos máquinas virtuales, se puede

emplear PostgreSQL-16 para realizar la actividad.

2. Se instala Pglogical es una extensión que se ocupara para que la

replicación multi-master funcione. Se ingresa el siguiente comando:

sudo apt install postgresql-14-pglogical

Si usas una versión diferente solo cambias el número de la versión que

estas ocupando

3. Se crea la extensión en PostgreSQL con el siguiente comando:

CREATE EXTENSION pglogical;

Si se presenta error al crear la extensión se requiere que se ingrese

en la lista de bibliotecas cargadas automáticamente en la configuración

de postgres como se muestra a continuación.

Busca la línea que comienza con shared_preload_libraries. Si no

existe, agrégala al final del archivo:

shared_preload_libraries = 'pglogical'
4. Se crea la extensión dentro de postgresql como se muestra a
continuación la extensión se debe crear a nivel base de datos, crearla
en la base de datos que se utiliza.

5. Se configuran los archivos postgresql.conf y pg_hba.conf como se


muestra a continuación:
Archivo postgresql.conf.
Archivo pg_hba.conf.

6. Reiniciar el servicio de postgresql para que las configuraciones que

realizamos previamente surjan efecto, se ingresa el siguiente

comando:

sudo service postgresql restart

7. Se elige un nodo principal el cual se emplea para crear la tablas que

se replicaran en el nodo 2 antes de crear las tablas creamos la

siguiente base de datos en donde vamos a crear las tablas:

CREATE DATABASE replicacion;


8. Creamos las tablas que vamos a emplear para este ejercicio:
9. Creamos el nodo mediante la siguiente instrucción:

SELECT pglogical.create_node(
node_name := 'node1-master',
dsn := 'host=192.168.207.133 dbname=replicacion user=postgres
password=unach'
);
10. Agregamos todas la tablas al conjunto de replicación llamada

‘default’ este paso solo se realiza en el nodo 1 , como se muestra a

continuación:

SELECT pglogical.replication_set_add_all_tables('default',
ARRAY['public']);

11. Ahora en el nodo2-master se realiza la creación del nodo2:

12. Ahora se regresa al nodo 1 y se crea la suscripción :

SELECT pglogical.create_subscription(
subscription_name := 'node1_subscription_a_nodo2',
provider_dsn := 'host=192.168.207.134 dbname=replicacion
user=postgres password=unach',
synchronize_structure := true,
synchronize_data := true
);
En la suscripción se sincronizarán automáticamente con el nodo

2 las tablas y su estructura. Cuando se crea una suscripción, estás indicando

que deseas que el nodo suscriptor replique los cambios realizados en el

nodo proveedor.

Se consulta y se inserta unos datos antes de ir hacer la suscripción al

nodo 2:

INSERT INTO productos (nombre, precio) VALUES


('Galletas', 33.33);
13. Se crea la suscripción al nodo 2 – master :

SELECT pglogical.create_subscription(
subscription_name := 'node2_subscription_a_nodo1',
provider_dsn := 'host=192.168.207.133 dbname=replicacion
user=postgres password=unach',
synchronize_structure := true,
synchronize_data := true
);

Se consulta para ver las tablas que se vincularon con la suscripción:

La replicación master a master hasta este punto ya estaría

realizado correctamente ahora se hacen pruebas de funcionamiento:


DELETE :
Conclusión.

En la culminación de esta actividad, se ha logrado con éxito la creación de la

replicación bidireccional de masters, es decir, que la replicación es multimaster.

Y ahora podemos argumentar que la configuración de replicación maestro a

maestro en PostgreSQL ofrece una solución para mejorar la disponibilidad y el

rendimiento de la base de datos. La capacidad de permitir tanto operaciones de lectura

como de escritura en ambos nodos proporciona una mayor flexibilidad, permitiendo una

distribución equitativa de la carga y la tolerancia a fallos.

Podemos decir, también que, la replicación maestro a maestro es una herramienta

que se aplica para tener una alta disponibilidad y escalabilidad.

You might also like