Recuperación Fallo en Replicación MySQL maestro – esclavo
- netoec84
- MySQL
- Abr 14, 2013
- esclavo, master, mysql, replica, replicacion, sincronizar
Si por alguna razón una base de datos MySQL que esta replicada falla en la sincronización y es necesario volver a sincronizarlas manualmente, este es el procedimiento a seguir:
En el servidor Master
RESET MASTER; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
Copiar los valores del resultado del ultimo comando ejecutado para ser utilizado posteriormente. Debe ser algo así:
+------------------+----------+---------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+---------------+------------------+ | mysql-bin.000001 | 98 | dbmydnsconfig | | +------------------+----------+---------------+------------------+
Sin cerrar la conexión, puesto que se perdería el bloqueo de las tablas, realizar un volcado de la base de datos master:
mysqldump -uroot -p --all-database > /RUTA/mysqldump.sql
Ahora, podemos liberar el bloqueo de las tablas. Para hacerlo, ejecutar el siguiente comando desde el cliente mysql:
UNLOCK TABLES;
Ahora, copiamos el archivo generado al servidor esclavo utilizando nuestra herramienta favorita (scp, cp, rsync)
En el Esclavo
Abrir una conexión MySQL con nuestro cliente de consola y digitar:
STOP SLAVE;
Cargar el archivo generado y copiado de la siguiente manera:
mysql -uroot -p < mysqldump.sql
Sincronizar desde el cliente MySQL el esclavo y master de la siguiente forma:
RESET SLAVE; CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;
Donde los valores de los campos son los que copiamos inicialmente
Finalmente digitar:
START SLAVE;
Y verificamos que todo este funcionando correctamente, digitamos:
SHOW SLAVE STATUS;
Y deberíamos ver en alguna parte:
Slave_IO_Running: Yes Slave_SQL_Running: Yes
Eso es todo!