meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| aplicaciones:backup:veeam [2018/05/16 11:24] – [Backup consistente de una base de datos mysql/mariadb] lc | aplicaciones:backup:veeam [2023/07/21 10:55] (actual) – [Referencias] lc | ||
|---|---|---|---|
| Línea 8: | Línea 8: | ||
| - Realizar una copia a otro repositorio del backup que realiza de su propio catálogo | - 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 | - Activar CBT (Change block truck). Antes de aplicarlos no tener snapshots abiertos previamente | ||
| + | |||
| + | https:// | ||
| ===== Backup consistente de una base de datos mysql/ | ===== Backup consistente de una base de datos mysql/ | ||
| Línea 17: | Línea 19: | ||
| 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. | 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. | 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. | ||
| + | Crearemos dos scripts uno para bloquear la BDD y el otro para desbloquearla una vez creado el snapshot | ||
| + | |||
| + | == precongelarmysql.sh == | ||
| + | <sxh bash> | ||
| + | #!/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 | ||
| + | # | ||
| + | defaults_file="/ | ||
| + | timeout=300 | ||
| + | lock_file=/ | ||
| + | ### | ||
| + | if [ -f $defaults_file ]; then | ||
| + | opts=" | ||
| + | fi | ||
| + | if [ -n $use_credentials ]; then | ||
| + | opts=" | ||
| + | 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; | ||
| + | mysql_pid=$! | ||
| + | echo "$0 child pid $mysql_pid" | ||
| + | c=0 | ||
| + | while [ ! -f $lock_file ] | ||
| + | do | ||
| + | # check if mysql is running | ||
| + | if ! ps -p $mysql_pid 1>/ | ||
| + | echo "$0 mysql command has failed (bad credentials? | ||
| + | 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 == | ||
| + | <sxh bash> | ||
| + | #!/bin/bash | ||
| + | lock_file=/ | ||
| + | ### | ||
| + | mysql_pid=$(cat $lock_file) | ||
| + | echo "$0 sending sigterm to $mysql_pid" | ||
| + | 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, | ||
| + | <sxh bash> | ||
| + | [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 ==== | ==== Referencias ==== | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * Best practices -> https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||