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		172.16.19.14
 master2		vlsrv06		172.16.19.15

Configuración

Configuramos el archivo /etc/my.cf 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

Y reiniciamos el servicio mysql en ambos servidores.

Creamos 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 're512plik';
 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 anotamos 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='172.16.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='172.16.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.1370038381.txt.gz · Última modificación: 2013/05/31 19:13 por fmolinuevo