Configuración inicial
Maestro: host localhost, port 17050
Esclavo1: host localhost, port 17051
Esclavo2: host localhost, port 17052
Configurando Maestro-Esclavo1
Primero: Configuración del Maestro
- Debe tener log-bin (bajo [mysqld] en my.cnf)
- Debe tener un usuario para replicación
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost' IDENTIFIED BY '123456'; - Debe extraer los parámetros de configuración para Esclavo1
SHOW MASTER STATUS;
Segundo: Configuración del Esclavo1
- Debe tener log-bin (bajo [mysqld] en my.cnf)
- Debe tener log-slave-updates (bajo [mysqld] en my.cnf)
- Debe tener un usuario para replicación
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost' IDENTIFIED BY '123456'; - Debe configurar Esclavo1 como esclavo de Maestro, para lo cual deberá introducir los parámetros obtenidos arriba en el paso 3.
CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=17050, MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=202
- Debe comenzar la replicación
START SLAVE;
Incorporando al Esclavo2
Una vez que el esquema Maestro-Esclavo1 se encuentre funcionando correctamente, se procederá a configurar el Esclavo2.
Primero: Extracción del dump (a partir de Esclavo1)
- Debe detener la replica como esclavo y liberar sus logs (en Esclavo1):
STOP SLAVE;
FLUSH LOGS; - Debe extraer un dump (de Esclavo1)
mysqldump -u root --password=msandbox --port=17051 --host=127.0.0.1 --master-data=2 test > dump1.sql - Reiniciar la replica como esclavo (en Esclavo1 - volviendo a la normalidad):
START SLAVE;
Segundo: Configuración del Esclavo2
- Restaurar el dump (en Esclavo2)
mysql -u root --password=msandbox --port=17051 --host=127.0.0.1 test < dump1.sql - Extraer parámetros de configuración del maestro. Para ello deberá buscar en el dump (dump1.sql) una línea como la siguiente:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=106 - Configurar Esclavo2 como esclavo de Esclavo1. Deberá copiar los parámetros extraidos en el paso 2 e introducirlos en este comando:
CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=17051, MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=106 - Iniciar el esclavo (en Esclavo2)
START SLAVE;
NOTA: La configuración inicial Maestro-Esclavo se asume desde el inicio, antes de que la base de datos tuviese registro alguno.
Para este ejercicio utilicé MySQL Sandbox
Y para realizar inserciones -sin parar- en las tablas del maestro utilicé el siguiente script:
#!/bin/bash
x=0; # initialize x to 0
#while [ "$x" -le 10 ]; do
while true; do
mysql -u root --password=msandbox --port=17050 --host=127.0.0.1 -e "INSERT INTO test.a VALUES($x)"
# increment the value of x:
x=$(expr $x + 1)
sleep 2
done
OJO: La tabla que uso es muy sencilla: CREATE TABLE a (a int); dentro del esquema test que instala por defecto MySQL Sandbox.
No hay comentarios:
Publicar un comentario en la entrada