Script para automatizar backups de MySQL en servidores Windows

Aunque en servidores Windows lo más habitual es trabajar con el SQL-Server de Microsoft como SGBD a veces puede tocarnos instalar un MySQL. Entonces nos asalta la duda ¿cómo automatizo un backup de la base de datos? Una de las tareas más habituales de todo administrador.

En la instalación de la base de datos se os instalará el programa mysqldump.exe para la gestión de copias de seguridad. Este programa nos permite, por medio de la línea de comandos, realizar un backup de la base de datos. Con la siguiente sintaxis, a grosso modo, haréis la copia de seguridad:

mysqldump –u (TuUsuario) –p(password) (nombre_base_datos) > (nombreArchivo).sql

Dato importante: entre -u y el nombre de vuestro usuario hay un espacio, entre -p y el password NO. Para más información sobre este comando, podéis visitar el artículo pertinente en el manual de MySQL.

Podéis abrir con CMD un terminal de comandos, situaroes en vuestra carpeta de MySQL y, situándoos allí en la carpeta bin, ejecutar el comando con los parámetros que correspondan para comprobar su funcionamiento. Una vez visto que mysqldump funciona el siguiente paso es crear un script de batch (con la extensión .bat) que ejecute el comando incluyendo la fecha. Los backups los guardaremos en una carpeta llamada C:\backups, y a la hora de escribir el script os vale cualquier editor, mismo el Notepad (aunque yo suelo usar en Windows Notepad++):

echo off                                        
set FECHA= %date%
set FECHA=%FECHA:/=%
mysqldump -e -u root –p7j91lt0y articulos > C:\backups\backuparticulos%FECHA%.sql

NOTA:Edito porque esta semana me he topado con que en el PowerShell de Windows 2k12 no me estaba funcionado esa instrucción, y también me han comentado hoy que el script no funcionaba. Lo mejor es que probéis primero en el intérprete de comandos si funciona, y si os falla la de arriba podéis cambiar la sintaxis por esta:

mysqldump --user=root --password=7j91lt0y articulos > C:\backups\backuparticulos%FECHA%.sql

Con la primera instrucción desactivamos la salida por pantalla de la consola, luego recogemos la fecha actual, la formateamos y finalmente creamos el backup anexando a su nombre la fecha de la copia. En este ejemplo he usado el usario root, recordad siempre que el usuario que utilicéis debe tener permisos en la base de datos para realizar la copia de seguridad. Guardad este script en la carpeta bin de vuestra instalación de MySQL.

Pues ya tenemos el script listo, ejecutadlo con permisos de administrador para ver que funciona. Si os crea un archivo vacío es que algo falla, repasadlo (la sintaxis, la contraseña, el nombre, los permisos tanto en la bd como en el sistema operativo…). Ahora lo que nos queda es automatizar la ejecución del script para programar, por ejemplo, una copia diaria de la base de datos. Para eso os váis al menú de administración del servidor y creáis una tarea básica que ejecute el batch a diario a una hora predeterminada (a poder ser una hora con poca actividad para la base de datos). Para más ayuda con el tema de la automatización podéis visitar la web de Microsoft.

Anuncio publicitario

8 comentarios en “Script para automatizar backups de MySQL en servidores Windows

  1. Hugo

    Estoy intentando desde un windows 7 64bits.
    Me da acceso denegado.
    He intentado abriendo una consola de comandos (cmd) en modo administrador y desde ahí convocando al .bat.

  2. Anonimo

    *Por si alguien busca algo como esto .
    Me funcionó así en windows server 2008

    echo off
    set FECHA= %date%
    set FECHA=%FECHA:/=%
    mysqldump –user=test –password=test Inventario > C:\Users\administrador\Desktop\Respaldos\backupInventario”%FECHA%”.sql

    1. Alexis Villa

      Dos horas tratando de dar con la solucion con la variable concatenada, me leí como 5 foros hice un postgrado en batch hasta que me encontre con tu ayuda, gracias!!!

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.