> Manuales > Taller de MySQL

Cómo realizar un backup de las tablas de una base de datos y su recuperación a partir de sentencias SQL.

Veremos cómo realizar una copia de seguridad de la tabla y su recuperación a partir de sentencias SQL.

Backup de los datos

Este comando nos permite hacer una copia de los ficheros de las tablas de las cuales queremos hacer un backup, actualmente solo funciona con tablas de tipo MyIsam, y copia tanto los ficheros .frm que contienen la definición de la tabla, como los ficheros .myd, que contienen los datos.

Antes de ejecutarse, guarda todos los cambios que pudiera haber en memoria de la tabla, de forma que quede de una manera consistente. Asimismo, durante la ejecución del comando, bloquea la tabla sobre la que se está haciendo la copia de seguridad para que los datos sean consistentes en la tabla. Hay que tener en cuenta que este comando va bloqueando una a una las tablas, según va haciendo la copia de seguridad. Esto podría provocar inconsistencia de datos a nivel de base de datos, si es necesario hacer un backup de todas las tablas en un instante, en cuyo caso habría que utilizar el comando "lock tables" para bloquear todas las tablas antes de comenzar la copia de seguridad.

Al finalizar el comando devuelve una tabla, que contiene los campos:


Columna Valores
Table Nombre de la tabla
Op Siempre pone "backup"
Msg_type Puede contener status, error, info o warning.
Msg_text Mensaje descriptivo del resultado de la operación

Y en la que hay un registro por cada tabla que sobre la que se ha hecho backup.

Para realizar una copia de una tabla llamada pedidos, a la carpeta Backups:

BACKUP TABLE pedidos TO `/backups/`

Recuperación de datos

Para complementar la sentencia "Backup table", Mysql dispone de la sentencia "Restore table", que permite restaurar una tabla a partir de una copia de seguridad que se ha realizado con el comando "Backup Table".

Esta opción solo se puede utilizar si la tabla que se pretende restaurar no se encuentra en la base de datos, ya que en caso afirmativo mostrará un mensaje de error. Al igual que el comando de Backup, esta opción sólo esta disponible para las tablas de tipo MyIsam, y a partir de la versión 3.23.25.

Como el comando de backup, no copia los ficheros de índices, el comando para recuperar los datos, vuelve a reindexar todos los campos que contienen índices, creando los ficheros correspondientes. Al igual que el comando para hacer copias de seguridad, invocar al comando "Restore table" devuelve una tabla, con un registro por cada tabla sobre la que se ha hecho la base de datos, y que contiene la siguiente información:

Columna Valores
Table Nombre de la tabla
Op Siempre pone "restore"
Msg_type Puede contener status, error, info o warning.
Msg_text Mensaje descriptivo del resultado de la operación

Para restaurar una tabla llamada pedidos de la carpeta Backups a la base de datos:

RESTORE TABLE pedidos FROM `/backups/`
Nota: Para continuar aprendiendo métodos para realizar un backup de una base de datos MySQL tenemos el artículo Backup MySQL con mysqldump, que enseña a manejar el comando mysqldump para hacer una copia de seguridad de la base de datos entera.

Carlos Luis Cuenca

Carlos es ingeniero informático por la UPM (Politécnico de Madrid), especializad...

Manual