Script para copias de seguridad en MySQL y MariaDB

MariaDB

Esta entrada no es exclusiva para una versión concreta de MySQL o de MariaDB, sino que puede servir para cualquier versión. Hoy te presento un pequeño script para hacer copias de seguridad de las bases de datos utilizando mysqldump, y donde te comentaré mi experiencia, y alguno de los scripts de Windows para automatizar las tareas, cosa que siempre viene bien.

En mi caso, suelo disponer de varios scripts en función de las necesidades, pero todos tienen el mismo objetivo: realizar backups de bases de datos MySQL o MariaDB.

Script de copias de seguridad de MySQL para bases de dato concretas

El script para hacer copias de seguridad en bases de datos MySQL o MariaDB que te presento en esta entrada es el que estoy utilizando para trabajar con mi tesis. El objetivo es preguntar qué base de datos es la que se va a hacer backup, y proceder a ello separando la estructura de los datos. En caso de que necesites otra configuración, sólo tienes que ajustar los parámetros de mysqldump para adaptarlos.

Lo primero que necesitas es preparar es:

  • Dónde está el fichero mysqldump
  • La dirección IP de tu servidor (o el nombre, o si es localhost)
  • El nombre del fichero de texto que contendrá el resumen de lo realizado
  • El directorio temporal

En mi caso, el objetivo del script tiene que cumplir que se separe la estructura (STRU_) de los datos (DATA_), y así está planteado en el script, por lo que se preparan dos opciones. Además, verifico si existe el directorio temporal donde se guardarán los archivos, y en caso de que no exista, se creará.

El script .bat

Este es el script que yo estoy usando y que por supuesto, eres libre de utilizar siempre que lo adaptes a tus necesidades. Sólo tienes que guardarlo en un fichero .bat.

@echo off
rem Version 2.3.0 - 20200923 - Backup

SET mysqldump="D:\xampp\mysql\bin\mysqldump.exe" --defaults-extra-file=D:\xampp\config.cfg
echo you_database
echo you can add much more

SET /p BDD=Base de datos? 
SET fecha=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
SET FH=%time:~0,2%%time:~3,2%%time:~6,2%

SET mkdirectorio=d:\backup
set rutadir1=%mkdirectorio%\%fecha%\STRU
set rutadir2=%mkdirectorio%\%fecha%\DATA
set opcion1=--skip-comments --no-data --add-drop-database --add-drop-table --routines --events
set opcion2=--skip-comments --complete-insert --extended-insert

@if exist %mkdirectorio% goto saltando
mkdir %mkdirectorio%
@ECHO ON
@ECHO Creado ... %mkdirectorio% 
@ECHO OFF
:saltando

rem Elimina archivos Backup temporal
cd %mkdirectorio%

@%mysqldump% %opcion1% --result-file="%rutadir1%_%BDD%.sql" --databases "%BDD%"
@%mysqldump% %opcion2% --result-file="%rutadir2%_%BDD%.sql" --databases "%BDD%"

cd ..

echo %rutadir1%_%BDD%.sql

Para concluir y personalizar el script, yo he incluido en la zona de “echoes” el nombre de las distintas bases de datos de las que normalmente quiero copia, ayudándome a recordar sus nombres.

Y como conclusión, el script te muestra la ruta dónde se ha guardado el script.

Pues, nada, espero que te sirva y que estés más seguro!