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:
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).