lunes, 22 de agosto de 2016

Relay log corruptio en MySQL

Problemas con el "Relay Log", marcando corrupto en MySQL

La replicación del MySQL se detiene y al entrar a checar lo sucedido (show slave status \G;) te encuentras con un error como el siguiente:

Last_Error: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s MySQL code. If you want to check the master’s binary log or slave’s relay log, you will be able to know their names by issuing ‘SHOW SLAVE STATUS’ on this slave.



Esto puede ser ocasionado por muchas situaciones tales como, falla en la red, algún bug en el master o esclavo, problemas de hardware u otros.

La investigación deberá esperar y primero es poner activo el espejo  nuevamente, después habrá tiempo para investigar. 

Ejecutamos en el esclavo SHOW SLAVE STATUS y luego CHANGE MASTER TO para redirigir el punto de replicación al Relay_Master_Log_File dado y a la posición Exec_Master_Log_Pos.

Es decir:

show slave status;

slave stop;

change master to master_log_file=Relay_Master_Log_File,  master_log_pos=Exec_Master_Log_Pos;

slave start;

Nota: Los datos los extraemos del primer comando.


Entrando al tema, si tenemos mas de un espejo y solo fallo uno, sabremos que los "Relay Log" corruptos son los del servidor en cuestión. 

Si el problema esta en el master y ejecutaste las lineas anteriores, el problema persistirá.


Si el problema se encuentra en la master tendrás que ejecutar "mysqlbinlog" y encontrar el siguiente evento para iniciar la recuperación.

Al final deberas hacer un chequeo general de las cifras de los servidores, para verificar que están correctos, si no fuera así tendrás que hacer una sincronización de ls tablas que no lo estén, ó en el peor de los casos comenzar con el proceso de sincronizar toda la instancia, es decir. un respaldo completo de las bases de datos y volver a sincronizar desde un inicio los servidores.


No hay comentarios.:

Publicar un comentario