Cómo restaurar una tabla corrupta MySQL. Backup y Recovery

Normalmente realizaremos backups de nuestras bases de datos.

Ejemplos de comandos mysqldump:

Para realizar la copia se seguridad de la base de datos mibase al fichero copia_seguridad.sql

mysqldump –opt mibase > copia_seguridad.sql

Otro ejemplo más complejo de comando mysqldump para hacer el backup de una base de datos es el siguiente:

mysqldump –opt –password=miclave –user=miuser mibasededatos > archivo.sql

En este último caso estamos indicando un nombre de usuario y una clave para acceder a la base de datos sobre la que se está haciendo el backup: mibasededatos. Las sentencias SQL para reconstruir esa base de datos se volcarán en el fichero archivo.sql.

Con estos archivos podemos recuperar la base de datos.

Ejemplos para recuperar la base de datos:

Si deseamos recuperar la información de un fichero para restaurar una copia de seguridad de la base de datos lo haremos con el comando mysql. Utilizaremos una sintaxis como esta:

mysql mibase < archivo.sql

En este ejemplo se restauraría la base de de datos mibase con el backup almacenado en el fichero archivo.sql.

Otro ejemplo más complejo de comando para restaurar una base de datos es el siguiente:

mysql –password=miclave –user=miuser mibase < archivo.sql

Es el mismo ejemplo que el anterior, pero indicando un nombre de usuario y una clave con las que acceder a la base de datos mibase.

Ahora bien, supongamos que en uno de nuestros backup de base de datos MySQL encontramos:

————————————————————————————————————————

mysqldump: Got error: 145: Table ‘[insert table name]’ is marked as crashed and should be repaired when using LOCK TABLES

————————————————————————————————————————

Pues resulta que tenemos una tabla bloqueada marcada como corrupta.

Ejemplos para recuperar una tabla:

Primero hay que ir al directorio donde se encuentra la base de datos (/var/lib/mysql/)  y a continuacion ejecutar myisamchk -r  sobre la tabla corrupta.  Por ejemplo, la tabla danny de la base de datos SomeDatabase:

>cd /var/lib/mysql

>sudo myisamchk -r  SomeDatabase/danny

– recovering (with sort) MyISAM-table ‘SomeDatabase/danny’

Data records: N

– Fixing index 1

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *