meta data de esta página
Veeam Backup
La instalación puede ser en virtual o en físico, en principio da igual sólo depende de los recursos que tengamos disponibles .
Recomendaciones
- Realizar una copia a otro repositorio del backup que realiza de su propio catálogo
- Activar CBT (Change block truck). Antes de aplicarlos no tener snapshots abiertos previamente
https://www.veeam.com/blog/how-to-avoid-misconfigurations-setting-up-veeam.html
Backup consistente de una base de datos mysql/mariadb
Para hacer la copia de seguridad podemos optar por tres métodos distintos, previos a la realización del snapshot :
- Ejecutando un script que bloquea la BDD para hacer un volcado de la misma,
- Parando el servicio de BDD por completo
- Poniendo la BDD en modo lectura para hacer el volcado de la misma
Nosotros vamos a optar por el último ya que implica no parar el recurso, aunque tampoco podemos realizar modificaciones mientras la bdd está bloqueada en modo lectura. Además el tiempo de congelación de la BDD es corto ya que sólo dura el tiempo que veeam backup tarda en hacer el snapshot previo a la copia.
Paso 1
Lo primero que tenemos que hacer es definir una cuenta que tenga permisos en la mv destino para poder ejecutar el script. Para eso vamos al Veeam Backup → Manage Credentials Añadimos una nueva, en mi caso del tipo Linux Account
Paso 2
Una vez creada la cuenta que vamos a utilizar para ejecutar los scripts, lo siguiente será crear los scripts. Recomiendo crearlos con el Notepad++ ya que tenemos que guardarlos aplicando la compatibilidad para linux. Es decir, antes de guardar el fichero deberemos ir al Notepad+++→Edit→EOL Conversion y elegir la opción UNIX/OSF Format Crearemos dos scripts uno para bloquear la BDD y el otro para desbloquearla una vez creado el snapshot
precongelarmysql.sh
#!/bin/bash # config: # Por defecto usamos el usuario y la clave que hay que definir en /etc/my.cnf # En caso contrario, descomentar la línea inferior y poner usuario y contraseña para la bdd #use_credentials="-uroot -pcontraseña" defaults_file="/etc/my.cnf" timeout=300 lock_file=/tmp/mysql_tables_read_lock ### if [ -f $defaults_file ]; then opts="--defaults-file=$defaults_file" fi if [ -n $use_credentials ]; then opts="$opts $use_credentials" fi sleep_time=$((timeout+10)) rm -f $lock_file echo "$0 executing FLUSH TABLES WITH READ LOCK" | logger mysql $opts -e "FLUSH TABLES WITH READ LOCK; system touch $lock_file; system nohup sleep $sleep_time; system echo\ lock released|logger; " > /dev/null & mysql_pid=$! echo "$0 child pid $mysql_pid" | logger c=0 while [ ! -f $lock_file ] do # check if mysql is running if ! ps -p $mysql_pid 1>/dev/null ; then echo "$0 mysql command has failed (bad credentials?)" | logger exit 1 fi sleep 1 c=$((c+1)) if [ $c -gt $timeout ]; then echo "$0 timed out waiting for lock" | logger touch $lock_file kill $mysql_pid fi done echo $mysql_pid > $lock_file exit 0
post-congelarmysql.sh
#!/bin/bash lock_file=/tmp/mysql_tables_read_lock ### mysql_pid=$(cat $lock_file) echo "$0 sending sigterm to $mysql_pid" | logger pkill -9 -P $mysql_pid rm -f $lock_file exit 0
Los ficheros creados los copiamos a un directorio del servidor donde tenemos instalado el Veeam Backup.
Paso 3
Si vamos a usar la validación a la bdd desde el fichero de configuración, editamos el fichero /etc/my.cnf de la mv donde tenemos instalada la BDD y añadimos lo siguiente:
[client] user = usuario de mi bdd password = contraseña usuario
En caso contrario debemos de modificar el script de pre para poner el usuario y la constraseña para validarse en la bdd
Referencias
- Best practices → https://www.veeambp.com/ https://www.veeam.com/es/videos.html