Herramientas de usuario

Herramientas del sitio


servidores:general:mysql_replicacion_master_master

¡Esta es una revisión vieja del documento!


MySQL: configurando replicación master-master

Por el equipo de FMSI Sistemas de Informática ::: Fecha creación: 20130530

Escenario

 master1		vlsrv05		192.168.19.14
 master2		vlsrv06		192.168.19.15

Configuración

Configuramos MySQL con el archivo /etc/mysql/my.cnf en ambos servidores:

Master 1

log-bin          = /var/log/mysql/mysql-bin
server-id        = 1
auto_increment_increment= 2
auto_increment_offset   = 1

Master 2

log-bin          = /var/log/mysql/mysql-bin
server-id        = 2
auto_increment_increment= 2
auto_increment_offset   = 2

Luego se debe reiniciar el servicio mysql en ambos servidores:

service mysql restart

Creación de un usuario para replicar

Generamos el usuario “replicacion” para acceso desde cualquier host o 2 usuarios, uno para acceso desde cada servidor.

 mysql-master> GRANT REPLICATION SLAVE ON *.* TO 'replicacion'@'%' IDENTIFIED BY '<password>';
 mysql-master> FLUSH PRIVILEGES;

Esto originalmente deberiamos hacerlo en los 2 servidores pero no hace falta en este caso porque luego copiaremos todas las bases de datos al otro servidor (inclusive 'mysql').

Debemos igualar las bases de datos

a) Detenemos los servicios de MySQL en ambos servidores.

b) Copiamos y enviamos la base de datos MySQL al otro servidor:

 mysql-master# cd /var/lib && tar czvf /tmp/data-mysql.tar.gz mysql
 mysql-master# scp /tmp/data-mysql.tar.gz root@vlsrv06:/tmp

c) En el otro servidor la descomprimimos y copiamos en /var/lib/mysql/

Activar replicación

Debemos ejecutar el siguiente comando en ambos servidores y anotar los datos:

mysql-master1> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      336 |              |                  |
+------------------+----------+--------------+------------------+

mysql-master2> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      106 |              |                  |
+------------------+----------+--------------+------------------+

Activamos la replicacion en ambos servidores utilizando los datos del paso anterior:

 mysql-master1> CHANGE MASTER TO MASTER_HOST='192.168.19.15', MASTER_USER = 'replicacion', MASTER_PASSWORD = 'MIPASSWORD', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
 mysql-master2> CHANGE MASTER TO MASTER_HOST='192.168.19.14', MASTER_USER = 'replicacion', MASTER_PASSWORD = 'MIPASSWORD', MASTER_LOG_FILE = 'mysql-bin.000006 ', MASTER_LOG_POS = 336;

Nota:

Arrancamos los procesos slave en ambos nodos

 mysql@M1> START SLAVE;
 mysql@M2> START SLAVE;

Verificar que todo funcione

 show slave status\G;
servidores/general/mysql_replicacion_master_master.1370038944.txt.gz · Última modificación: 2013/05/31 19:22 por fmolinuevo