Les sau­ve­gardes sont in­dis­pen­sables au bon fonc­tion­ne­ment de toute base de données. Une panne, une mise à jour dé­fec­tueuse ou un incident de sécurité peuvent effacer ir­ré­mé­dia­ble­ment des données. Dans ce tutoriel, découvrez comment protéger ef­fi­ca­ce­ment les bases de données MariaDB et effectuer une sau­ve­garde complète de MariaDB.

Types de sau­ve­garde MariaDB : logique vs physique

MariaDB distingue deux types de sau­ve­gardes, aussi appelées backups :

  • Les sau­ve­gardes logiques stockent les données dans un format exé­cu­table SQL. Elles con­tien­nent des ins­truc­tions telles que CREATE TABLE et INSERT INTO, qui per­met­tent de restaurer la structure et le contenu de la base de données. Les sau­ve­gardes logiques sont utiles si vous souhaitez trans­fé­rer des données vers d’autres systèmes, d’autres versions ou même d’autres systèmes de bases de données.
  • Les sau­ve­gardes physiques copient les fichiers et les ré­per­toires de la base de données di­rec­te­ment à partir du système de fichiers. Cette méthode est plus rapide et plus efficace, en par­ti­cu­lier pour les grandes quantités de données. Cependant, elle ne fonc­tionne de manière fiable que si le serveur, les formats de stockage et les versions de MariaDB restent iden­tiques.

Dans de nombreux cas, il est re­com­mandé de combiner les deux méthodes, par exemple en utilisant des sau­ve­gardes logiques pour les données ou tables in­di­vi­duelles et des sau­ve­gardes physiques pour des res­tau­ra­tions complètes et rapides.

Bases de données managées
Des bases de données gérées et sûres
  • Solutions flexibles, adaptées à vos besoins
  • Ar­chi­tec­ture de niveau pro­fes­sion­nel, gérée par des experts
  • Hébergées en Europe, con­for­mé­ment aux normes de pro­tec­tion des données les plus strictes

Créer un backup de MariaDB : quelles sont les options dis­po­nibles ?

MariaDB propose dif­fé­rents outils pour sau­ve­gar­der les données. Selon l’uti­li­sa­tion prévue, la quantité de données et l’en­vi­ron­ne­ment système, dif­fé­rentes méthodes peuvent être en­vi­sa­gées.

mariadb-dump

mariadb-dump est l’outil de sau­ve­garde le plus connu de MariaDB. Il crée des sau­ve­gardes logiques et en­re­gistre les données sous forme de fichier SQL. Ce fichier peut ensuite être réimporté à l’aide du client MariaDB.

Avantages :

  • Fonc­tionne sur tous les systèmes équipés du client MariaDB
  • Sau­ve­garde des tables, d’une ou de toutes les bases de données
  • Com­pa­tible avec d’autres versions de MariaDB et MySQL

In­con­vé­nients :

  • Les volumes de données im­por­tants allongent la durée de la sau­ve­garde et de la res­tau­ra­tion
  • Des pics de charge peuvent survenir pendant la sau­ve­garde

mariadb-backup

mariadb-backup sau­ve­garde phy­si­que­ment les données. Cet outil est basé sur Percona Xtra­Ba­ckup et a été étendu pour MariaDB. Il prend en charge le chif­fre­ment et la com­pres­sion.

Avantages :

  • Rapide et efficace pour les grandes quantités de données
  • Effectue des sau­ve­gardes pendant le fonc­tion­ne­ment (sau­ve­garde à chaud)
  • Convient aux systèmes pro­duc­tifs avec des tables InnoDB

In­con­vé­nients :

  • Ne fonc­tionne qu’avec InnoDB (pas avec MyISAM)
  • Con­fi­gu­ra­tion et res­tau­ra­tion plus complexes

Autres options

  • mariadb-hotcopy : ancien outil pour les tables MyISAM (n’est plus maintenu)
  • LVM-Snapshots : sau­ve­garde à l’échelle du système au niveau du système de fichiers. Très rapide, mais complexe
  • dbForge Studio : solution graphique pour les systèmes Windows avec une interface con­vi­viale

Exemple pratique : effectuer un backup de MariaDB avec mariadb-dump

Vous devez avoir accès au serveur de base de données et disposer d’un compte uti­li­sa­teur avec des droits de sau­ve­garde (par exemple root). Ouvrez un terminal ou une connexion SSH. Assurez-vous que la commande mariadb-dump est installée et dis­po­nible dans le chemin d’accès.

Sau­ve­gar­der toutes les bases de données

Exécutez la commande suivante :

mariadb-dump -u root -p --all-databases --result-file=/backups/backup_all.sql
bash

Ex­pli­ca­tion :

  • -u root : définit l’uti­li­sa­teur root.
  • -p : demande la saisie du mot de passe.
  • --all-databases : sau­ve­garde toutes les bases de données exis­tantes.
  • --result-file : définit le fichier cible pour la sau­ve­garde.

La sau­ve­garde contient toutes les bases de données, y compris la gestion des uti­li­sa­teurs, les triggers, les vues et les tables système.

Sau­ve­gar­der une base de données spé­ci­fique

La commande --databases shop_db sau­ve­garde uni­que­ment la base de données spécifiée.

mariadb-dump -u root -p --databases shop_db --result-file=/backups/shop_db.sql
bash

Si vous souhaitez éviter l’ins­truc­tion CREATE DATABASE dans le dump, utilisez :

mariadb-dump -u root -p shop_db --result-file=/backups/shop_db.sql
bash

Dans ce cas, vous devrez créer vous-même la base de données lors de la res­tau­ra­tion.

Sau­ve­gar­der plusieurs bases de données

Ci-dessous, vous trouverez la liste des bases de données qui seront incluses dans la sau­ve­garde. Un fichier SQL sera généré contenant les ins­truc­tions pour toutes les bases de données listées.

mariadb-dump -u root -p --databases db1 db2 db3 --result-file=/backups/multiple.sql
bash

Sau­ve­gar­der des tables in­di­vi­duelles

Nous indiquons la base de données et les tables sou­hai­tées di­rec­te­ment dans la commande. Cela est utile pour les ex­por­ta­tions ciblées, par exemple lors de la migration de tables in­di­vi­duelles.

mariadb-dump -u root -p db_name table1 table2 --result-file=tables.sql
bash

Options possibles pour mariadb-dump

Option Des­crip­tion
--no-data Sau­ve­garde uni­que­ment la structure, pas les données
--no-create-info Sau­ve­garde uni­que­ment les données, sans la structure des tables
--routines Sau­ve­garde les pro­cé­dures et les fonctions
--events Sau­ve­garde les évé­ne­ments planifiés
--single-transaction Sau­ve­garde sans ver­rouil­lage pour les tables InnoDB
--quick Réduit les besoins en mémoire pour les grandes tables

MariaDB : au­to­ma­ti­ser les sau­ve­gardes avec Cron

Au­to­ma­ti­sez les sau­ve­gardes quo­ti­diennes à l’aide d’un Cron job. Ouvrez le tableau Cron :

crontab -e
bash

Ajoutez cette ligne pour créer une sau­ve­garde tous les jours à 3 heures, par exemple :

0 3 ** * mariadb-dump -u root -p password --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Pour des raisons de sécurité, n’en­re­gis­trez pas les mots de passe di­rec­te­ment dans le tableau Cron. Créez plutôt un fichier de con­fi­gu­ra­tion.my.cnf dans le ré­per­toire d’accueil :

[client]
user=root
password=password
bash

Dé­fi­nis­sez les droits d’accès :

chmod 600 ~/.my.cnf
bash

Utilisez ensuite la variante suivante sans mot de passe dans les Cron jobs :

mariadb-dump --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Utilisez de pré­fé­rence mariadb-dump pour des sau­ve­gardes flexibles et in­dé­pen­dantes du système et pour de petites quantités de données. Pour les systèmes pro­duc­tifs avec de grandes quantités de données, mariadb-backup est re­com­mandé. Effectuez des sau­ve­gardes ré­gu­lières et vérifiez-les en ef­fec­tuant des res­tau­ra­tions tests. Seule une sau­ve­garde vérifiée vous protège de manière fiable contre la perte de données.

Aller au menu principal