Restaurar tablas en MySQL

por | 25/11/2016

En el artículo de hoy mostraré como restaurar tablas en MySQL. Recientemente he tenido que recuperar de los backups tablas para los desarolladores. Algunos directamente restauran la base de datos completa, pero no hace falta ya que podemos recuperar simplemente las tablas que necesitemos. En mi caso, por error se modificaron datos de un par de tablas y se necesitaba recuperar el contenido de la tabla.

Suponiendo que tenemos un backup de nuestra base de datos, yo en particular a parte de los backups diarios de los servidores, de las bases de datos más críticas realizo backups cada hora. En mi caso básicamente recuperé el backup de la última hora. Es básicamente un dump de la base de datos comprimido. Podéis ver como hacer un backup de MySQL AQUI El proceso de Restaurar tablas en MySQL sería el siguiente:

Procedemos a descomprimir el backup con el comando gunzip

Una vez tenemos descomprimido nuestro backup, procedemos a ver la estructura de las tablas y ver el listado de tablas. Para ello haremos un grep de Table structure de nuestro backup.

grep –n ‘Table structure’ nombre_backup_basedatos.sql

Restaurar tablas en MySQL

Restaurar tablas en MySQL

Una vez tenemos el listado de las tablas, miramos que tablas queremos recuperar y seleccionamos el ID con el que empieza la tabla que queremos recuperar y el ID de la siguente tabla. Sabiendo esto, lo que haremos será extraer la tabla a otro «backup», es decir hacemos un dump a un fichero sql para volcarlo a nuestra base de datos al final. Usaremos el comando:

sed –n ‘ID TABLA, ID SIGUIENTE TABLA p’ nombre_backup_basedatos.sql > backup_tabla.sql

Si hacemos un grep –n ‘Table structure’ backup_tabla.sql veremos que tenemos las tablas que queremos recuperar.

Finalmente, sólo quedará volcar el backup de la tabla sobre nuestra base de datos haciendo un restore normal de MySQL.

mysql –uusuario –p BASEDATOS < backup_tabla.sql

Esto nos puede salvar la vida en ocasiones. Recordad que también se podría restaurar tablas en MySQL mediante phpMyAdmin.

Saludos

2 pensamientos en “Restaurar tablas en MySQL

Deja una respuesta

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