Icono del sitio Programando a medianoche

Hacer backup de todas las bases de un servidor MySQL o MariaDB en Windows

MySql BackupAl igual que contaba en el artículo «Hacer backup de todas las bases de un SQL Server«, uno de los problemas que podemos tener en un motor de base de datos utilizado para desarrollo es la constante creación y eliminación de bases, principalmente cuando tenemos muchos proyectos, lo que nos dificulta la tarea de hacer backups programados. Para automatizar esta tarea, en Scientia hicimos un script de linea de comando que revisa los archivos de la carpeta que contiene las bases de datos de nuestro MySQL, hace un backup de cada una y luego las comprime (utilizamos el RAR 5) en una carpeta de la red (en nuestro caso dentro de un NAS) utilizando como nombre del archivo la fecha actual.
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!

Salir de la versión móvil