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
Entradas (RSS)