Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
servidores:general:mysql_replicacion_master_master [2013/05/31 19:12] fmolinuevo |
servidores:general:mysql_replicacion_master_master [2013/06/06 20:10] (actual) fmolinuevo [Verificar que todo funcione] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== MySQL: configurando replicación master-master ====== | ====== MySQL: configurando replicación master-master ====== | ||
- | //Por el equipo de FMSI, [[fmsi>|FMSI Sistemas de Informática]]// **:::** //Fecha creación: **20130530**// | + | //Por el equipo de [[fmsi>|FMSI Sistemas de Informática]]// **:::** //Fecha creación: **20130530**// |
===== Escenario ===== | ===== Escenario ===== | ||
- | master1 vlsrv05 172.16.19.14 | + | master1 vlsrv05 192.168.19.14 |
- | master2 vlsrv06 172.16.19.15 | + | master2 vlsrv06 192.168.19.15 |
===== Configuración ===== | ===== Configuración ===== | ||
- | Configuramos el archivo /etc/my.cf en ambos servidores: | + | Configuramos MySQL con el archivo /etc/mysql/my.cnf en ambos servidores: |
- | <code> | + | ==== Master 1 ==== |
- | + | ||
- | Master 1: | + | |
+ | <code> | ||
log-bin = /var/log/mysql/mysql-bin | log-bin = /var/log/mysql/mysql-bin | ||
server-id = 1 | server-id = 1 | ||
auto_increment_increment= 2 | auto_increment_increment= 2 | ||
auto_increment_offset = 1 | auto_increment_offset = 1 | ||
+ | </code> | ||
- | Master 2: | + | ==== Master 2 ==== |
+ | <code> | ||
log-bin = /var/log/mysql/mysql-bin | log-bin = /var/log/mysql/mysql-bin | ||
server-id = 2 | server-id = 2 | ||
auto_increment_increment= 2 | auto_increment_increment= 2 | ||
auto_increment_offset = 2 | auto_increment_offset = 2 | ||
- | |||
</code> | </code> | ||
- | Y reiniciamos el servicio mysql en ambos servidores. | + | Luego se debe reiniciar el servicio mysql en **ambos servidores**: |
+ | |||
+ | service mysql restart | ||
- | ===== Creamos un usuario para replicar ===== | + | ===== Creación de un usuario para replicar ===== |
Generamos el usuario "replicacion" para acceso desde cualquier host o 2 usuarios, uno para | Generamos el usuario "replicacion" para acceso desde cualquier host o 2 usuarios, uno para | ||
acceso desde cada servidor. | acceso desde cada servidor. | ||
- | mysql-master> GRANT REPLICATION SLAVE ON *.* TO 'replicacion'@'%' IDENTIFIED BY 're512plik'; | + | mysql-master> GRANT REPLICATION SLAVE ON *.* TO 'replicacion'@'%' IDENTIFIED BY '<password>'; |
mysql-master> FLUSH PRIVILEGES; | mysql-master> FLUSH PRIVILEGES; | ||
- | Esto originalmente deberiamos hacerlo en los 2 servidores pero no hace falta en este caso | + | Esto se debería hacer en los 2 servidores, pero no hace falta en este caso |
- | porque luego copiaremos todas las bases de datos al otro servidor (inclusive 'mysql'). | + | porque luego se copiarán **todas** las bases de datos al otro servidor (inclusive 'mysql'). |
- | ===== Debemos igualar las bases de datos ===== | + | ===== Igualar las bases de datos ===== |
- | a) Detenemos los servicios de MySQL en ambos servidores. | + | - Detenemos los servicios de MySQL en ambos servidores. |
- | + | - Copiamos y enviamos la base de datos MySQL al otro servidor:<code> | |
- | 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# cd /var/lib && tar czvf /tmp/data-mysql.tar.gz mysql | ||
- | mysql-master# scp /tmp/data-mysql.tar.gz root@vlsrv06:/tmp | + | mysql-master# scp /tmp/data-mysql.tar.gz root@vlsrv06:/tmp</code> |
- | + | - En el otro servidor la descomprimimos y copiamos en /var/lib/mysql/ | |
- | c) En el otro servidor la descomprimimos y copiamos en /var/lib/mysql/ | + | |
===== Activar replicación ===== | ===== Activar replicación ===== | ||
- | Debemos ejecutar el siguiente comando en ambos servidores y anotamos los datos: | + | Debemos ejecutar el siguiente comando en ambos servidores y anotar los datos: |
<code> | <code> | ||
Línea 70: | Línea 68: | ||
| mysql-bin.000006 | 336 | | | | | mysql-bin.000006 | 336 | | | | ||
+------------------+----------+--------------+------------------+ | +------------------+----------+--------------+------------------+ | ||
+ | </code> | ||
+ | <code> | ||
mysql-master2> show master status; | mysql-master2> show master status; | ||
+------------------+----------+--------------+------------------+ | +------------------+----------+--------------+------------------+ | ||
Línea 81: | Línea 81: | ||
Activamos la replicacion en ambos servidores utilizando los datos del paso anterior: | 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-master1> CHANGE MASTER TO MASTER_HOST='192.168.19.15', MASTER_USER = 'replicacion', MASTER_PASSWORD = '<password>', 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; | + | mysql-master2> CHANGE MASTER TO MASTER_HOST='192.168.19.14', MASTER_USER = 'replicacion', MASTER_PASSWORD = '<password>', MASTER_LOG_FILE = 'mysql-bin.000006 ', MASTER_LOG_POS = 336; |
- | Nota: | + | ===== Iniciar los procesos slave en ambos nodos ===== |
- | + | ||
- | ===== Arrancamos los procesos slave en ambos nodos ===== | + | |
mysql@M1> START SLAVE; | mysql@M1> START SLAVE; | ||
Línea 93: | Línea 91: | ||
===== Verificar que todo funcione ===== | ===== Verificar que todo funcione ===== | ||
+ | |||
+ | En cada uno de los servidores, el siguiente comando mostrará el servidor que está actuando como master, y la información de replicación: | ||
show slave status\G; | show slave status\G; | ||
+ | |||
+ | ===== Bibliografía ===== | ||
+ | |||
+ | * http://www.howtoforge.com/mysql_master_master_replication | ||
+ | * http://brendanschwartz.com/post/12702901390/mysql-master-master-replication | ||
+ | |||
+ | |||
+ | |||