Cómo hacer copias de seguridad de MySQL en Dropbox

Alivio.
Hacer copias de seguridad es una práctica saludable y necesaria cuando hay que cuidar el servidor usado por muchos usuarios que esperan menos frustración y más diversión. Las amenazas para el servidor MySQL son muchas: podría estropearse o explotar (es una broma); es entonces cuando nos acordamos de las copias de seguridad.

Afortunadamente existen maneras de hacer una copia de seguridad de manera automática en el servidor sin mucho stress. En este post explicaré cómo hacer una copia seguridad automática usando un almacenamiento externo ubicado en Internet teniendo a mano Windows Server 2008, 7zip, MySQL y Dropbox.

Dropbox es un servicio de almacenamiento de archivo de 2Gb sencillo y práctico. Dropbox es útil porque se sincroniza automáticamente con el almacenamiento remoto, es decir si se copia un archivo a la carpeta de Dropbox entonces el archivo sube de inmediato al Internet.

Windows Server 2003 o 2008 tiene una utilidad propia llamada Task Schedule o Programador de Tareas. Algo parecido a Cron en Linux que nos sirve para programar la hora y fecha del proceso de Copia de Seguridad usando mysqldump.

El proceso funciona de la siguiente manera: el Programador de Tareas ejecutará un simple *.bat que contiene las lineas necesarias para el llamado al comando mysqldump con el objetivo de generar el archivo de copia de seguridad en bruto sin comprensión de MySQL en una carpeta de copia temporal antes de ser enviado a Dropbox.


Sin embargo tenemos un problema: el archivo de copia de seguridad de MySQL usando mysqldump puede ser enorme y es necesario comprimir el archivo antes de enviar a Dropbox que está limitado a 2Gb. Para ello  usaremos 7zip para Windows, un proyecto open source alternativo a Winzip y Winrar con utilidades para lineas de comando que nos ayudará en la tarea de comprimir el archivo resultante de mysqldump.

Una vez comprimido el archivo, un *.bat se encargará de copiar el resultado a carpeta de Dropbox que automáticamente será sincronizado y subido hacia la Internet Internet. Todo listo. (adiós viejo comando Push de FTP)

El archivo bat:

El archivo *.bat que dispara el Programador de Tareas ubicado por ejemplo en C:\var\backupmysql.bat debe tener el siguiente contenido:

set FECHA= %date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
set BUG=D:\Backup\BaseDatos\backup_basedatoscompras_%FECHA%.sql
D:\mysql\bin\mysqldump -p"usuariobackup" -u  usuariobackup  basedatoscompras > %BUG%
set DROPBOX=C:\Dropbox\Dropbox\BackupRemoto\backup%FECHA%.7z
"C:\Program Files (x86)\7-Zip\7z.exe" -t7z a %DROPBOX% %BUG%


Donde FECHA contiene la Fecha en Formato Corto y la Hora. BUG tiene la ruta completa donde debe ser generado el archivo. El comando mysqldump es invocador usando BUG haciendo una copia de la base de datos llamada basedatoscompra. Finalmente la variable DROPBOX es declarada para ubicar el archivo comprimido. La última línea invoca a 7z.exe para generar el archivo comprimido en formato *.7z .

De acuerdo. Solo preocúpate por reemplazar las rutas correctamente.

Finalmente queda registrar el *.bat en el Programador de Tareas y programar el tiempo de ejecución por ejemplo: ejecutar el bat a las 9 pm. Listo.

Acción lista en el Programador de Tareas de Windows

Conclusión

Es posible hacer copias de seguridad remotas en MySQL usando Dropbox, el Programador de Tareas de Windows, el comprensor 7zip y mysqldump. Sin embargo esta solución no es perfecta porque solo funciona cuando Dropbox inicia junto a la sesión actual. Es decir, si no hay inicio de sesión no hay sincronización. Otro riesgo es colocar la contraseña de la base de datos MySQL en el archivo *.bat, no parece una buena idea. Finalmente es correcto revisar Dropbox con frecuencia para ver si las tareas se ejecutaron correctamente. Es necesario considerar estos problemas.

Saludos!

CATEGORIAS
COMENTARIOS 0 Comentarios

Deja un comentario