Professional Documents
Culture Documents
AVANZADAS
Sesión 18 – Replicación
Replicación
Proceso de compartir información, asegurando
consistencia entre recursos redundantes
Incrementa
Fiabilidad
Tolerancia a fallos
Disponibilidad
Replicación
La replicación en SGDB mediante instancias
maestro/esclavo
El maestro
contiene toda la información original
es donde se realiza la manipulación de los datos
Registra todas las actualizaciones realizadas
El esclavo
Lee el registro de manipulación de datos
Repite estas manipulaciones, creando una copia exacta de
los datos
Replicación en MySQL
Replicación en MySQL
Configurar el servidor maestro
Establecer el server ID en el archivo my.ini
Detener el servidor
Net stop mysql
Editar el archivo my.ini
[mysqld]
#habilitar binary log
log-bin=mysql-bin
#establecer server id para replicacion
server-id=1
Iniciar el servidor
Net start mysql
Replicación en MySQL
Configurar el esclavo
Establecer el server id en el archivo my.ini del esclavo
parar el servidor
net stop mysql
editar el archivo my.ini
[mysqld]
server-id=2
iniciar el servidor
net start mysql
Replicación en MySQL
crear un usuario para replicación
conectarse al maestro como root
mysql -u root –p
crear un usuario en el maestro con privilegios de
REPLICATION SLAVE
create user 'repl'@'%' identified by 'password123';
grant replication slave on *.* to 'repl'@'%';
Replicación en MySQL
obtener las coordenadas del binary log del maestro
eliminar caches de tablas y obtener bloqueo de lectura para
prevenir alteración de datos
flush tables with read lock;
Abrir otra sesión en el maestro como root, sin cerrar la anterior
mysql -u root –p
obtener las coordenadas del binary log
show master status;
registrar los valores de los campos File y Position para después.
si están vacios, los valores de estos serán '' y 4 respectivamente.
cerrar la sesión, pero dejar corriendo la sesión que invocó el
bloqueo
quit
Replicación en MySQL
crear una instantánea de la base de datos
crear archivo con dump de la base de datos a replicar
mysqldump -u root -p -R --lock-all-tables test > dbdump.sql
liberar el bloqueo en la sesión donde se adquirió
unlock tables;
conectarse a la base de datos esclavo
mysql -u root –p
crear base de datos a replicar en el esclavo
create database test;
use test;
importar los datos al esclavo
source dbdump.sql
show tables;
Replicación en MySQL
añadir la configuración del maestro en el esclavo
obtener la dirección ip del host de base de datos maestro
Ipconfig
conectarse a la base de datos esclava
mysql -u root –p
establecer la configuración del maestro en el esclavo
change master to
master_host='192.168.1.65',
master_user='repl',
master_password='password123',
master_log_file='mysql-bin.000001',
master_log_pos=410;
Replicación en MySQL
inicializar la replicación con datos existentes
indicar el inicio de la replicación
start slave;