Hace 8 meses atrás aproximadamente escribí sobre como crear una replicación de tipo Maestro/Esclavo con MySQL en la cual prometía continuar la guía escribiendo como hacer lo mismo pero de modo circular, es decir, una replicación 2-way.
Para llevar a cabo este tutorial, deberán configurar sus bases de datos como lo decía la primer parte. La misma pueden leerla aquí: Replicacion MySQL.
Una vez todo lo anterior este OK, detendremos el motor para trabajar (tanto el esclavo como el maestro), desde la consola
1 | /etc/init.d/mysql stop |
Vamos a editar el fichero de configuracion del MySQL con cualquier editor
1 | vim /etc/my.cnf |
Agregamos la siguiente clausula debajo de la sección de configuración del esclavo, esto hará que el esclavo también genere su propio log binario.
1 2 3 4 5 6 7 8 | replicate-do-db=cism log-bin=mysql-bin.log innodb_flush_log_at_trx_commit=1 sync_binlog=1 binlog-do-db=cism expire_logs_days = 0 log-slave-updates # esta es linea que debemos agregar |
Volvemos a iniciar el lado esclavo
1 | /etc/init.d/mysql start |
Nos conectamos a la misma, debemos especificar con que BD queremos trabajar obligatoriamente para los siguientes pasos
1 | mysql -h 19x.xxx.xxx.x01 -u root -p****** devtroce |
Vamos a bloquear la escritura en la BD, y verificaremos en que posición está el LOG Binario.
Nos aparecerá algo parecido a lo que vemos abajo, debemos anotar en algún lado los valores de la columna File y Position
1 2 3 4 5 | +----------------------------+----------+--------------+-------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +----------------------------+----------+--------------+-------------------------+ |mysql-bin.000001 | 98 | devtroce | | +----------------------------+----------+--------------+-------------------------+ |
Ahora podemos desbloquear las tablas pero asegurarnos que nadie se conectará a producir cambios, si lo desean pueden hacerlo más adelante si dudan de este paso:
1 2 | UNLOCK TABLES; QUIT; |
Ahora tenemos que convertir al master, en esclavo a la vez, para ello reconfiguraremos su archivo archivo:
1 | vim /etc/mysql/my.cnf |
Repetimos el proceso anterior, agregando la clausula log-slave-updates
Iniciamos nuevamente el proceso de MySQL
1 | /etc/init.d/mysql start |
Finalmente seteamos quien es su maestro, y en que posición quedó su log que son los valores que anotamos en el paso anterior.
1 2 3 4 5 6 7 8 9 10 | STOP SLAVE; CHANGE MASTER TO MASTER_HOST='IP-del-master-server', MASTER_PORT = puerto-del-master-server, MASTER_USER='usuario_esclavo', MASTER_PASSWORD='password_esclavo', MASTER_LOG_FILE='file_log_determinado????', MASTER_LOG_POS=recorded_log_position????, MASTER_CONNECT_RETRY=60 ; START SLAVE; |
Vale conocer algunas features que no podemos o no conviene hacer si elegimos este tipo de replicacion, la pueden ver en el sitio oficial:
http://dev.mysql.com/doc/refman/5.0/es/replication-features.html
Articulos Relacionados:









en
en
en
en
Trackbacks/Pingbacks
[...] http://www.devtroce.com/2010/08/15/tutorial-de-replicacion-circular-en-mysql/ August 15, 2010 // MySQL // No Comments // [...]