Recuperando tablas corruptas en MySQL

Hace poco me he encontrado con un par de tablas corruptas en una BBDD de MySQL y a continuación os explico como es la forma más fácil de recuperar esas tablas marcadas como corruptas.

Yo me tope con este fallo al tratar de hacer un dump de la BBDD:

$ mysqldump -u root -p mydatabase > ./mydatabase.sql
got error 144 Table 'mydatabase.mytable' is marked as crashed and last (automatic?) repair failed" when using LOCK TABLES

Así que tenemos dos opciones: la ‘lenta‘ y la ‘rápida‘.

La lenta es iniciar sesión en MySQL e intentar reparar la tabla en cuestión de la siguiente manera:

$ mysql -u root -p mydatabase
> repair table mytable;

En mi caso esta opción fue un poco frustrante ya que no devuelve ninguna salida, una forma de ver el progreso de la recuperación, es iniciar otra sesión visualizar los procesos activos:

$ mysql -u root- p mydatabase
> show processlist;

La rápida y mas verbose es usar el comando: myisamchk. Con esta opción debemos buscar el directorio donde se encuentran los archivos de la BBDD, en mi caso:

/var/lib/mysql/mydatabase

Primero debemos comprobar que ficheros estan corruptos ejecutando:

$ myisamchk -v /var/lib/mysql/mydatabase/*MYI

Veréis que de esta forma el comando nos va informando de cada uno de los ficheros que esta chequeando y de cual exactamente esta corrupto. Una vez tengamos el fichero corrupto, podemos ejecutar:

$ myisamchk -r /var/lib/mysql/mydatabase/mytable#P#pmax.MYI

Si de esta forma la tabla no se puede recuperar podemos forzarlo, pero tened en cuenta que esta opción podría provocar perdida de datos:

$ myisamchk -fr /var/lib/mysql/mydatabase/mytable#P#pmax.MYI

¡Y eso es todo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s