En Mysql a veces pasa que el log de la base de datos se corrompe y lanza errores como este:

ERROR: Error in Log_event::read_log_event(): 'Event too big'

En estos casos hay que buscar la siguiente posición válida del archivo e indicarle a Mysql que siga a partir de esa posición. Para ello ejecutamos el comando “mysqlbinlog mysql-bin.0000YY –start-position=XXXX”. La YY se cambia por el número de archivo log y las XXXX por la posición indicada en en error de Mysql, aumentando XXXX en 1 unidad en cada prueba, hasta que no de mensaje de error en el comando. Una vez localizada una línea buena, le decimos a Mysql que siga a partir de esa línea y listo. Para eso buscamos ejecutamos la sentencia sql “change master to MASTER_LOG_FILE = ‘mysql-bin.0000YY’, MASTER_LOG_POS = 0″.

Para probar de forma más cómoda cuál es la buena, podemos usar este script como ejemplo, porque puede ser 10 posiciones sobre el error o 700 o más:

 #!/bin/bash
NUM=$1
echo "INICIO: $NUM"
echo "FIN: $2"
while [ $NUM -le $2 ]; do
        mysqlbinlog mysql-bin.000004 --start-position=$NUM
        echo "EJECUTADO: $NUM"
        let NUM=$NUM+1
done
Deja una Respuesta