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

1- Escenario:

 master1		vlsrv05		172.16.19.14
 master2		vlsrv06		172.16.19.15

2- Configuración:

Configuramos el archvio /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.

3- 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').

4- 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/

5- 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:

6- Arrancamos los procesos slave en ambos nodos:

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

7- Verificar que todo funcione:

 show slave status\G;
servidores/general/mysql_replicacion_master_master.1369843818.txt.gz · Última modificación: 2013/05/29 13:10 por fmolinuevo