
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!
