Sauvegarder mes bases de données MariaDB sous Veeam

De Ikoula Wiki
Jump to navigation Jump to search

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:

01 backup mariadb vspc.png



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:

02 backup mariadb vspc.png



Je reviens sur la fenêtre précédente et je clique sur Customize application handling options...:

03 backup mariadb vspc.png



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 ?

0



Vous n'êtes pas autorisé à publier de commentaire.