How to use Redis with MuleSoft. A quick start presentation.
Replicacion en mysq
1. Universidad de El Salvador
Facultad Multidisciplinaria de Occidente
Departamento de Ingeniería y Arquitectura
REPLICACION EN MYSQL
Bases de Datos
2. En que consiste la replicación??
La replicación en MySQL se basa en un servidor
maestro que toma nota de todos los cambios en las
bases de datos (actualizaciones, borrados, y así) en los
logs binarios. Por lo tanto, para usar replicación, debe
activar el log binario en el servidor maestro.
3. Ventajas
Poder realizar copia de nuestras bases de datos en
emplazamientos muy distantes entre sí, permitiéndonos
una rápida recuperación en caso de problemas en el sitio
principal.
Replicar los datos que necesitamos. Se pueden realizar
copias de todas las bases de datos, de las que nos
interesen o solamente de unas tablas en concreto.
Permite aislar la base de datos principal para escrituras.
4. Tipos de Replicación
Maestro –Esclavo
– Todas las actualizaciones sobre el servidor maestro son
replicadas en el esclavo.
Maestro-Maestro
– En este esquema, ambos servidores replican sobre los
otros, es decir, ambos son a la vez master y esclavo.
5. Funcionamiento
El servidor maestro escribe actualizaciones en el
fichero de log binario
Estos logs sirven como registros de actualizaciones
para enviar a los servidores esclavos
Cuando un esclavo se conecta al maestro, informa al
maestro de la posición
El esclavo recibe cualquier actualización que han
tenido lugar
6. Funcionamiento
Es extremadamente importante tener en cuenta que el log
binario simplemente es un registro que comienza en un
punto fijo en el tiempo en el que activa el log binario.
Cualquier esclavo que inicialice necesita copias de las bases
de datos del maestro tal y como estaban en el momento en
que activó el log binario en el maestro. Si arranca sus
esclavos con bases de datos que no están en el mismo
estado que las del maestro cuando arrancó el log binario,
es muy posible que fallen sus esclavos
7. Configurar Replicación
Maestro--Esclavo
CONFIGURACION MASTER
En el servidor maestro, agregar/modificar, la sección [mysqld] del
archivo de configuración my.cnf o my.ini (/etc/mysql/my.cnf en
debian):
server-id = 1
log-bin=mysql-bin.log
Creamos el usuario que se conectara al master para la replicación:
GRANT REPLICATION SLAVE ON *.* TO
‘usuario’@’host’ IDENTIFIED BY ‘contraseña’;
8. Configurar Replicación
Maestro--Esclavo
FLUSH PRIVILEGES; Decir al servidor que vuelva a leer las tablas de
permisos.
En el servidor maestro, ejecutar ‘FLUSH TABLES WITH READ
LOCK;’, para prevenir la escritura a base de datos en el maestro.
En el servidor maestro, ejecutar ‘UNLOCK TABLES;’
En el servidor maestro, reiniciar el demonio (o servicio) mysqld
En el servidor maestro, ejecutar ‘SHOW MASTER STATUS;’ en el
maestro y guardar los valores para la posterior configuracion del esclavo.
9. Configuración de Esclavo
• En el servidor esclavo, modificar el archivo my.cnf o my.ini:
[mysqld]
server-id=2
master-host = Ip Master
master-user= usuario
master-password= contraseña
master-connect-retry= 60
master-port=3306
master-log-file=mysql-bin.000005
master-log-pos=98
binlog-do-db= bd a replicar
• Ajustar los valores de acuerdo al usuario creado y los valores obtenidos al
realizar el ‘SHOW MASTER STATUS’ anterior.
10. Configuración de Esclavo
• Ejecutamos la sentencia para ajustar los valores de la replicacion.
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST=’Ip Master’,
MASTER_USER=’usuario’,
MASTER_PASSWORD=‘contraseña’
MASTER_PORT=3306 ,
MASTER_LOG_FILE=’mysql-BIN.000001′,
MASTER_LOG_POS=98;
(Según la información de la sentencia SHOW MASTER STATUS).
• En el servido esclavo, ejecutar:
START SLAVE;
11. Configurar Replicación
Master-Master
CONFIGURACION MASTER 1
Configuramos de la misma forma y modificamos el archivo
my.cnf omy.ini (/etc/mysql/my.cnf en debian):
server-id = 1
log-bin=mysql-bin.log
master-host = Ip Master2
master-user= usuario
master-password= contraseña
master-connect-retry= 60
master-port=3306
binlog-do-db= bd a replicar
12. Configurar Replicación
Master-Master
• Creamos el usuario para el Master 2
GRANT REPLICATION SLAVE ON *.* TO ‘usuario2’@’host2’
IDENTIFIED BY ‘contraseña2’;
• FLUSH PRIVILEGES;
• Configuramos el Master 1 como esclavo de Master 2
CHANGE MASTER TO
MASTER_HOST=’Ip Master2’,
MASTER_USER=’usuario2’,
MASTER_PASSWORD=‘contraseña2’
MASTER_PORT=3306,
MASTER_LOG_FILE=’mysql-BIN.000003′,
MASTER_LOG_POS=106 ;
(Según la información de la sentencia SHOW MASTER STATUS).
START SLAVE;
13. Configurar Replicación
Master-Master
CONFIGURACION MASTER 2
Se configura de la misma forma que el master 1
En el servidor master 2, modificar el archivo my.cnf o my.ini:
[mysqld]
server-id=2
log-bin=mysql-bin.log
master-host = Ip Master1
master-user= usuario
master-password= contraseña
master-connect-retry= 60
master-port=3306
binlog-do-db= bd a replicar
14. Configurar Replicación
Master-Master
• Creamos el usuario para el Master 1
GRANT REPLICATION SLAVE ON *.* TO ‘usuario1’@’host1’
IDENTIFIED BY ‘contraseña1’;
FLUSH PRIVILEGES;
• Configuramos el Master 2 como esclavo de Master 1
CHANGE MASTER TO
MASTER_HOST=’Ip Master1’,
MASTER_USER=’usuario’,
MASTER_PASSWORD=‘contraseña’
MASTER_PORT=3306,
MASTER_LOG_FILE=’mysql-BIN.000003′,
MASTER_LOG_POS=106;
(Según la información de la sentencia SHOW MASTER STATUS).
START SLAVE;
15. Configurar Replicación
Master-Master
De la información del SLAVE nos interesa que los valores:
Slave_IO_Running y Slave_SQL_Running estén en YES en
ambos casos. Si todo está funcionando podemos probar la
Replicación ingresando al phpmyadmin de uno de los Servers
para agregar un valor y verificar que éste se haya replicado en
la BD del otro Server.