Sauvegarder mes bases de données MariaDB sous Veeam
Introduction
Nous verrons dans cet article comment sauvegarder mes bases de données MariaDB sur Veeam
Pré-requis
Il faut assez d'espace sur votre agent pour accueillir de manière temporaire une copie de vos bases de données.
Déroulé
Sur mon agent, je vais dans un premier temps, installer les repos MySQL:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb dpkg -i mysql-apt-config_0.8.29-1_all.deb
Ensuite je vais installer les dépendances nécessaires:
apt-get update && apt install libmysqlclient21 mydumper
Je vais créer un utilisateur MariaDB permettant de sauvegarder mes bases de données:
create user 'veeam_backup'@'localhost' identified by '<PASSWORD>'; grant select,reload,lock tables,replication client on *.* to 'veeam_backup'@'localhost';
Je télécharge les 2 scripts suivants sur mon poste:
https://mirror.ikoula.com/pub/veeam/veeam_mariadb_pre.sh
https://mirror.ikoula.com/pub/veeam/veeam_mariadb_post.sh
Je modifie le mot de passe de mon utilisateur veeam_backup au niveau du script veeam_mariadb_pre.sh.
Au niveau du job de mon agent sur la VSPC, dans la partie Guest Processing, j'active l'éxecution de script:
En cliquant sur Customize scripts settings, j'ajoute les scripts que j'ai téléchargé sur mon poste en pre-freeze et post-thraw:
Je reviens sur la fenêtre précédente et je clique sur Customize application handling options...:
Je rentre les identifiants de mon utilisateur MariaDB.
La configuration du job est terminée.
Il peut y avoir un souci d'interprétation des caractères du fait d'upload les scripts via un poste windows, pour cela il faut installer dos2unix sur votre serveur:
apt-get install dos2unix
Puis convertir les 2 scripts:
dos2unix /etc/veeamma/job_scripts/*/*
Pour la restauration, c'est très simple, il faudra monter votre backup sur votre agent Procédure, comme pour de la restauration de fichiers.
Vous retrouverez les dumps dans /mnt/backup/root/IkoulaRelease/backup_mariadb_temp/, pour restaurer ma base wordpress_test par exemple:
myloader -h localhost -u wordpress -p XXXXXX -B wordpress_test -t 2 -C -d /mnt/backup/root/IkoulaRelease/backup_mariadb_temp/wordpress_test -v 3
Via Veeam Agent Linux
Exemple:
# avec mot de passe aléatoire PASSWORD="$(cat /dev/random | tr -dc '[:alnum:]' | head -c 20)" JOB_NAME="15j, 5s, 1m full et mariadb" wget -O /root/IkoulaRelease/scripts/veeam_mariadb_pre.sh https://mirror.ikoula.com/pub/veeam/veeam_mariadb_pre.sh wget -O /root/IkoulaRelease/scripts/veeam_mariadb_post.sh https://mirror.ikoula.com/pub/veeam/veeam_mariadb_post.sh chmod +x /root/IkoulaRelease/scripts/veeam_mariadb_pre.sh chmod +x /root/IkoulaRelease/scripts/veeam_mariadb_post.sh mysql -e "create user 'veeam_backup'@'localhost' identified by '${PASSWORD}';" mysql -e "grant select,reload,lock tables,replication client on *.* to 'veeam_backup'@'localhost';" sed -i "s/XXXXXXXXXXX/$PASSWORD/g" /root/IkoulaRelease/scripts/veeam_mariadb_pre.sh wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb DEBIAN_FRONTEND=noninteractive dpkg -i mysql-apt-config_0.8.29-1_all.deb apt-get update && apt install libmysqlclient21 mydumper veeamconfig job create volumeLevel --backupAllSystem --name "$JOB_NAME" --reponame "$(veeamconfig repository list | tail -n 1 | awk -F'{' '{print $1}' | sed 's/ *$//')" \ --daily --at "03:00" --weekdays-full "Sun" --maxpoints "15" --indexall --blocksize "256" \ --prefreeze "/root/IkoulaRelease/scripts/veeam_mariadb_pre.sh" --postthaw "/root/IkoulaRelease/scripts/veeam_mariadb_post.sh" veeamconfig gfs set --jobname "$JOB_NAME" weekly --on "Sunday" --keep 5 veeamconfig gfs set --jobname "$JOB_NAME" monthly --on "First" --keep 1 veeamconfig aap set mysql --jobname "$JOB_NAME" --usrmysqldb "veeam_backup" --password "$PASSWORD" #Pour modifier un job existant: JOB_NAME=$(veeamconfig job list | cut -d'{' -f1 | tail -1 | sed 's/ *$//') veeamconfig aap set mysql --jobname "$JOB_NAME" --usrmysqldb "veeam_backup" --password "$PASSWORD" veeamconfig job edit volumeLevel --prefreeze "/root/IkoulaRelease/scripts/veeam_mariadb_pre.sh" --postthaw "/root/IkoulaRelease/scripts/veeam_mariadb_post.sh" for --name "$JOB_NAME"
Conclusion
Vous pourrez retrouver d'autres articles sur Veeam dans notre catégorie Veeam
Cet article vous a semblé utile ?
Activer l'actualisation automatique des commentaires