Réaliser une sauvegarde automatique de Mysql ou MariaDB avec Docker
Réaliser une sauvegarde automatique de Mysql ou MariaDB avec Docker
Réaliser une sauvegarde automatique de Mysql/MariaDB avec Docker très facilement et en quelques minutes !
Cet article qui vous est présenté aujourd'hui va vous permettre de créer et de sauvegarder une sauvegarde automatique (backup) de la base de donnée Mysql ou son fork MariaDB avec le système de container Docker. Cette opération ne prendra seulement quelques minutes et sera très fiable.
Vous êtes propriétaire d'une base de données et vous souhaitez mettre en place une sauvegarde via un système de "contenaire" de type Docker. Avez-vous déjà pensé à utiliser Docker pour réaliser cette action ?
Cette manière fonctionne également avec le fork de Mysql, MariaDB : et pourrait même fonctionner avec toutes les autres types de DB tant que vous adaptez le container!
Tout d'abord, cet article est réservé aux initiés en Devops/Sysadmins.
Si vous êtes un bricoleur averti et que vous n'y connaissez pas grand chose en gestion de serveur unix ou même en informatique tout court, cet article n'est pas pour vous! Initialement l'article avait été crée pour réaliser un mémo soi-même. La communauté de Bricomachin a demandé de mettre l'article en ligne pour satisfaire les utilisateurs les plus avertis.
Il est intéressant (et nécessairement recommandé ou même obligatoire) d’effectuer des backups (=sauvegarde) réguilèrement et donc automatiquement avec Docker. Docker permet de simplifier la création de backup! C'est vraiment très simple et efficace.
Pour réaliser un BACKUP automatique, rapidement et sans intervention hmaine, il faut réaliser :
docker run --rm --link root_database3_1:dbserver -v /hostdir/:/backup -e DBUSER=root -e DBPASS=password -e DATABASE=base -e BACKUP_NAME=nomdelabdd thomass/mysqldump backup
On va aller prendre le container thomas/mysqldump et effectuer l’action « backup » du container qui consiste à faire un mysql dump (tout simplement si vous avez quelques notions de Sysadmin).
Pour automatiser cela très rapidement et effectuer des backups réguliers, nous créeons un petit SCRIPT .bash :
'''#!/bin/bash echo 'Backup en cours' docker run --rm --link root_database3_1:dbserver -v /root/backup/:/backup -e DBUSER=monloginroot -e DBPASS=monpassaleatoire -e DATABASE=test -e BACKUP_NAME="test-$RANDOM" thomass/mysqldump backup echo 'Fin du backup''''
Pour finaliser l'ensemble, on peut ajouter un script CRON (dans ce cas-ci bash) qui va le lancer selon nos besoins (à définir donc!).
Ce script fonctionne également sous .sh (et au final sous une autre extension..).
'''0 */4 * * * /home/truc/backup.sh'''
Dans cet exemple-ci, le backup sera exécuté toutes les quatres heures. Il est évident que ce paramètre est personnalisable et qu'il faudra adapter à votre situation.
N'oubliez pas que si vous avez de grosse database et que vous faites des backup trop souvent, vous devez avoir des espace de stockage suffisant pour tout stocker en sécurité.
Toutefois, nous vous conseillons de mettre cet espace dans un autre serveur qui est hébergé physiquement pas au même endroit (l'incendie d'ovh a ouvert les yeux à beaucoup de monde dans l'univers des serveurs dédiés).
Pour obtenir plus d'informations au sujet de crontab, je vous invite à lire "le guide de survie", un tutoriel relativement bien fait pour apprendre les bases de crontab. Je suppose que si vous utilisez Docker, vous avez les bases de Crontab et que vous savez lire une documentation pour compléter votre savoir-faire!
Conclusions :
Nous avons donc vu une une manière très simple et rapide de faire une sauvegarde (ou un backup) de votre base de donnée (database) Mysql ou son fork MariaDB avec la technologie de conteneur Docker qui apporte certains avantages de souplesse, de facilité et de rapidité! Exploitons-ces avantages et ce même dans la communauté des bricoleurs du web qui est déjà plus rare dans un monde manuel!