Está en la página 1de 3

Respaldar y Restaurar Bases de Datos

Mysql desde Shell



Respaldo y Restauracin MySQL de Manera Local.
Para hacer un respaldo de una base de datos MySQL desde nuestro consola o mediante comandos shell
podemos usar el comando mysqldump como lo ejemplificamos en la siguiente liga.
Comando: mysqldump -u "usuario" -p"contrasea" nombre-de-la-base-de-datos > nombre-del-respaldo.sql
NOTA: Las comillas deben omitirse tanto en el usuario como en la contrasea.

Para restaurar un respaldo de una base de datos MySQL usamos el siguiente comando
Comando: mysql -u "usuario" -p"contrasea" nombre-de-la-base-de-datos < nombre-del-respaldo.sql
NOTA: Al igual que en el ejemplo anterior las comillas deben omitirse tanto en el usuario como en la
contrasea.

Respaldo y Restauracin MySQL de Manera
Remota.
Para Respaldar o Restaurar una Base de datos remota usamos los mismos comandos que de manera local,
con la nica diferencia de agregar la opcin "-h" con la cual especificaremos el nombre o direccin del host en
donde se encuentra nuestra base.
Para Respaldar usamos:
Comando: mysqldump -u "usuario" -p"contrasea" -h"nombre-o-direccin-del-host" nombre-de-la-base-de-
datos > nombre-del-respaldo.sql
Para restaurar usamos:
Comando: mysql -u "usuario" -p"contrasea" -h"nombre-o-direccin-del-host" nombre-de-la-base-de-datos <
nombre-del-respaldo.sql
Sucede que con frecuencia visito amigos o clientes que utilizan esta popular base
de datos, y noto la forma en que hacen respaldos y restauraciones de bases de
datos, y he notado que muchos pasan un gran trabajo haciendo algo que en
realidad se pueda hacer de una forma muy sencilla, y sobre todo mucho ms
rpida.

Noten que existen soluciones pagas para gestionar el respaldo y restauracin de
MySQL, pero esta forma que les mostrar no solo es gratis, sino que la ms rpida
de todas.

Por lo general, los respaldos en MySQL se hacen por alguna interfaz grfica,
siendo quizs la ms popular de todas el gestionarphpMyAdmin. Sin embargo
herramientas como esa solo son prcticas para hacer respaldos de pequeas
bases de datos (en el orden de unos cuentos miles de registros). En el momento
que tratas de procesar tablas de cientos de miles o millones de registros, te metes
en problemas.

Esos problemas vienen por lo general en dos formas: O toma muchsimo tiempo
hacer el respaldo/restauracin, o sencillamente el proceso no se termina, y por lo
general eso conlleva a que algunos traten de hacer respaldos de forma manual
con programas escritos en todo tipo de lenguajes, lo cual como veremos a
continuacin es absolutamente innecesario..

As que el truco es bastante sencillo, y hasta documentado, aunque me sorprende
la cantidad de personas que lo desconocen. Los dos comandos para hacer backup
y respaldo de bases de datos de MySQL son estos:

mysqldump -u root -p eliax > eliax.sql
mysql -u root -p eliax < eliax.sql

Ahora noten unas cuantas importantes observaciones sobre esos dos comandos:

1. Estamos asumiendo una base de datos que se llama "eliax".

2. El primero de estos comandos hace el respaldo, el segundo hace la
restauracin. Al ejecutarlos, les preguntar la clave del usuario root para proceder.

3. Para que el segundo comando funcione, deben primer crear una base de datos
vaca, que en este caso se llame "eliax", de lo contrario el comando fallar
diciendo que no existe la base de datos en donde restaurar los datos. Ojo, que
para fines de automatizacin, podran crear un script que les cree la base de datos
primero.

4. Estos comandos son extremadamente rpidos. Una base de datos que por
otros medios quizs le tome buena parte de una hora, con este mtodo les tomar
posiblemente unos pocos segundos.

5. Esto funciona tanto en Windows como en derivados de UNIX (Linux, Mac OS X,
etc), y yo mismo lo he probado en todos estos entornos. As mismo debera
funcionar con forks de MySQL como MariaDB (esto no lo he probado).

6. En algunos sistemas operativos, estos comandos no se reconocern en la linea
de comando debido a que no estn en el PATH (ruta de binarios reconocidos) de
comandos del sistema. En esos casos tienen dos opciones: O agregan el
directorio donde estn los comandos "bin" de MySQL al PATH, o sencillamente
llaman estos comandos con la ruta completa al comando directamente.

7. Obviamente, el archivo eliax.sql o debe estar en el mismo directorio en donde
estn ejecutando el comando, o sino deben especificar la ruta completa en donde
se encuentra.

8. Noten que debido a la sencillez de estos comandos, que es posible automatizar
en forma recurrente los respaldos de MySQL con scripts sencillos, tanto en un .bat
en Windows, como en un script de shell en UNIX y derivados, llamando ese script
peridicamente con algo como el programador de tareas de Windows o un cron
job en UNIX o similar. En tales casos recomiendo que el script sea lo
suficientemente inteligente como para escribir eliax.sql en un formato ms
apropiado para respaldos, como por ejemplo: eliax_2013_06_26.sql (que indicara
un respaldo el da 26 de junio del 2013).