Portafolio Académico

Desarrollo Lógico y Algoritmo

10. Replicación de Bases de Datos MySQL

¿Qué es la replicación?

La replicación es un proceso mediante el cual los datos de una base de datos (llamada maestro o fuente) se copian automáticamente a una o más instancias secundarias (llamadas esclavos o réplicas). En MySQL, se utiliza principalmente para:

Ventajas y desventajas

Ventajas:

Desventajas:

Escenario implementado

1. Configuración del Maestro (Windows)

Paso 1: Editar my.ini (ubicado en C:\ProgramData\MySQL\MySQL Server 8.0\)

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=empresa  ; Base de datos a replicar
bind-address=0.0.0.0  ; Permitir conexiones remotas
port=3306

Paso 2: Reiniciar el servicio MySQL desde Servicios de Windows.

Paso 3: Crear usuario de replicación

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'clave_segura_123';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

Paso 4: Obtener estado del binlog

SHOW MASTER STATUS;

Anote los valores de File (ej. mysql-bin.000002) y Position (ej. 157).

2. Configuración de los Esclavos (Ubuntu Server)

Paso 1: Instalar MySQL

sudo apt update
sudo apt install mysql-server

Paso 2: Editar /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
server-id=2          ; Para esclavo 1 (usa 3 para esclavo 2)
bind-address=0.0.0.0
port=3306

Paso 3: Reiniciar MySQL

sudo systemctl restart mysql

Paso 4: Configurar conexión al maestro

CHANGE MASTER TO
  MASTER_HOST='192.168.1.100',
  MASTER_USER='replica_user',
  MASTER_PASSWORD='clave_segura_123',
  MASTER_LOG_FILE='mysql-bin.000002',
  MASTER_LOG_POS=157;

Paso 5: Iniciar la replicación

START SLAVE;

Paso 6: Verificar estado

SHOW SLAVE STATUS\G

Verifique que Slave_IO_Running y Slave_SQL_Running estén en Yes, y que Seconds_Behind_Master sea 0 o bajo.

Repita los pasos para el Esclavo 2, cambiando server-id=3 y asegurándose de que tenga IP única.

3. Pruebas de replicación

1. En el maestro, ejecute:

USE empresa;
INSERT INTO empleados (nombre, cargo) VALUES ('Laura Torres', 'Analista');

2. En cada esclavo, ejecute:

USE empresa;
SELECT * FROM empleados;

El nuevo registro debe aparecer automáticamente.

Consideraciones adicionales

← Volver al inicio

Explorar otras secciones: