La instalación puede ser en virtual o en físico, en principio da igual sólo depende de los recursos que tengamos disponibles .
https://www.veeam.com/blog/how-to-avoid-misconfigurations-setting-up-veeam.html
Para hacer la copia de seguridad podemos optar por tres métodos distintos, previos a la realización del snapshot :
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.
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
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
#!/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
#!/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.
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