Bueno, vamos al código…
rem Primero creo una carpeta temporal para guardar los backups md C:\MySqlBackup rem Por si antes se canceló otro backup y quedaron archivos, borro todo de esa carpeta del /F /Q C:\MySqlBackup\*.* rem En la carpeta "C:\MySQL Server Data\data" tenemos las bases de datos y en "C:\Program Files\MySQL\MySQL Server 5.6" tenemos la instancia de MySql rem En el parámetro --password hay que poner la contraseña del usuario "root" for /f %%a IN ('dir /b /ad "C:\MySQL Server Data\data"') do "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" --compact --create-options --dump-date --extended-insert --routines --result-file=C:\MySqlBackup\%%a.sql --user=root --password=XXXX %%a rem Comprimo todos los backups y los guardo en una carpeta de nuestro NAS rem El formato que devuelve %date% varía dependiendo de la configuración de la máquina "C:\Program Files\WinRAR\rar" A -s -ma -m5 -rr3p -tk -r -df -wc:\temp \\nas\Backups\mysql\mysql\%date:~6%%date:~3,2%%date:~0,2%.rar C:\MySqlBackup\*.* rem Borro todos los backups del /F /Q C:\MySqlBackup\*.* rem Elimino la carpeta temporal rd C:\MySqlBackup
Este script lo ejecutamos periódicamente en una tarea programada del servidor para asegurarnos de no perder nada en caso de falla de los discos, o por si necesitamos una versión anterior de alguna base de datos.
Espero les sirva.
Suerte!