domingo, 25 de mayo de 2014 a las 12:25hs por Gustavo Cantero (The Wolf)
Al 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!
Vale muuchas gracias
me sirvio mucho este script (bat)