meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:backup:veeam [2018/05/16 10:17] lcaplicaciones:backup:veeam [2023/07/21 11: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://www.veeam.com/blog/how-to-avoid-misconfigurations-setting-up-veeam.html
  
 ===== Backup consistente de una base de datos mysql/mariadb ==== ===== Backup consistente de una base de datos mysql/mariadb ====
-Para hacer la copia de seguridad +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{{ :aplicaciones:backup:manage_credentials.png?nolink&600 |}} 
 +Añadimos una nueva, en mi caso  del tipo Linux Account {{ :aplicaciones:backup:add_user.png?nolink&600 |}} 
 + 
 +=== 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 == 
 +<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 
 +#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 
 +</sxh> 
 +== post-congelarmysql.sh == 
 +<sxh bash> 
 +#!/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 
 +</sxh> 
 + 
 +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: 
 +<sxh bash> 
 +[client] 
 +user = usuario de mi bdd 
 +password = contraseña usuario 
 +</sxh> 
 + 
 +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://www.virtuallifestyle.nl/2013/03/back-up-mysql-on-linux-without-stopping-services-or-dumping-the-database/   * https://www.virtuallifestyle.nl/2013/03/back-up-mysql-on-linux-without-stopping-services-or-dumping-the-database/
 +  * https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html
 +  * Best practices -> https://www.veeambp.com/   https://www.veeam.com/es/videos.html
 +  * https://patriciocerda.com/veeam-backup-and-replication-metodos-de-backup-y-politicas-de-retencion/
 +  * https://www.jorgedelacruz.es/2018/10/09/veeam-como-proteger-ficheros-y-carpetas-que-se-encuentran-en-unidades-de-red-con-veeam-backup-file-to-tape/
 +  * https://www.veeam.com/blog/es/our-journey-to-gdpr-compliant.html