Esta receta explica una forma sencilla de hacer una copia de seguridad de una base de datos MySQL completa para poderla restaurar en caso de catástrofe o mudanza.

Hacer una copia de seguridad

El comando a utilizar es mysqldump que tiene la siguiente sintaxis:

mysqldump -u [user] -p [dbname] > [backup.sql]

por ejemplo:

# mysqldump --single-transaction -u admin -p drupal > drupal_backup.sql

Puesto que se pretende obtener un “foto fija” de la base de datos, es conveniente evitar que un acceso inoportuno pueda dejar el fichero volcado es un estado inconsistente. Esto se puede conseguir con varias opciones aunque la recomendada es --single-transaction.

Recuperar la base de datos desde un fichero

Se utiliza el método habitual para ejecutar sentencias SQL desde un fichero. Para el ejemplo sería:

# mysql -u admin -p drupal < drupal_backup.sql

Comentarios

El primer enlace que se adjunta se ha tomado como base para esta receta. En ese documento se explica también el uso de mysqlimport, sin embargo yo no he conseguido hacerlo funcionar tal como se indica. Se supone que se puede recuperar una base de datos que ya exista, pero la página de manual dice que sirve únicamente para recuperar una tabla, y no una base de datos completa.

También está disponible el comando mysqlhotcopy que tiene una funcionalidad similar a mysqldump.

Referencias



blog comments powered by Disqus