MySQL: table doesn't support repair


Aunque no suele ser algo muy habitual, en algunas ocasiones MySQL también falla y las tablas se corrompen. Un fallo en el servidor o la caída del mismo cuando la tabla estaba en medio de una transacción pueden provocar un fallo en la misma. Cuando MySQL se vuelve a arrancar, detecta un fallo en dicha tabla y nos advierte de ello. Para solucionarlo haya que usar la sentencia repair table. Pero hay veces que el repair también falla y en esos momentos, recuperar los datos almacenados es algo de vital importancia, pero si el motor de base de datos no nos deja acceder, tenemos un problema.

Por suerte, existen otras formas de reparar una tabla  de tipo innodb cuando la sentencia repair falla.
The storage engine for the table doesn't support repair
Procederemos con los siguientes pasos:
  1. Copia de seguridad de los datos
    shell> cp -r /var/lib/mysql/ /var/lib/mysql_backup/
    
  2. Paramos servidor MySQL
    shell> /etc/init.d/mysqld stop
    
  3. Forzamos reparación
    shell> vi /etc/my.cnf
    +  innodb_force_recovery = 4
    
  4. Arrancamos MySQL
    shell> /etc/init.d/mysqld start
    
  5. Comprobamos que tenemos acceso a los datos
    shell> mysql -u root -p
    Enter password:
    mysql> select * from DB.table_repaired
    
  6. Dejamos el servidor MySQL con las opciones por defecto
    shell> /etc/init.d/mysqld stop
    shell> vi /etc/my.cnf
    -  innodb_force_recovery = 4
    shell> /etc/init.d/mysqld start
    


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios