Les sauvegardes sont indispensables au bon fonctionnement de toute base de données. Une panne, une mise à jour défectueuse ou un incident de sécurité peuvent effacer irrémédiablement des données. Dans ce tutoriel, découvrez comment protéger efficacement les bases de données MariaDB et effectuer une sauvegarde complète de MariaDB.

Types de sauvegarde MariaDB : logique vs physique

MariaDB distingue deux types de sauvegardes, aussi appelées backups :

  • Les sauvegardes logiques stockent les données dans un format exécutable SQL. Elles contiennent des instructions telles que CREATE TABLE et INSERT INTO, qui permettent de restaurer la structure et le contenu de la base de données. Les sauvegardes logiques sont utiles si vous souhaitez transfé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 sauvegardes physiques copient les fichiers et les répertoires de la base de données directement à partir du système de fichiers. Cette méthode est plus rapide et plus efficace, en particulier pour les grandes quantités de données. Cependant, elle ne fonctionne de manière fiable que si le serveur, les formats de stockage et les versions de MariaDB restent identiques.

Dans de nombreux cas, il est recommandé de combiner les deux méthodes, par exemple en utilisant des sauvegardes logiques pour les données ou tables individuelles et des sauvegardes physiques pour des restaurations 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
  • Architecture de niveau professionnel, gérée par des experts
  • Hébergées en Europe, conformément aux normes de protection des données les plus strictes

Créer un backup de MariaDB : quelles sont les options disponibles ?

MariaDB propose différents outils pour sauvegarder les données. Selon l’utilisation prévue, la quantité de données et l’environnement système, différentes méthodes peuvent être envisagées.

mariadb-dump

mariadb-dump est l’outil de sauvegarde le plus connu de MariaDB. Il crée des sauvegardes logiques et enregistre les données sous forme de fichier SQL. Ce fichier peut ensuite être réimporté à l’aide du client MariaDB.

Avantages :

  • Fonctionne sur tous les systèmes équipés du client MariaDB
  • Sauvegarde des tables, d’une ou de toutes les bases de données
  • Compatible avec d’autres versions de MariaDB et MySQL

Inconvénients :

  • Les volumes de données importants allongent la durée de la sauvegarde et de la restauration
  • Des pics de charge peuvent survenir pendant la sauvegarde

mariadb-backup

mariadb-backup sauvegarde physiquement les données. Cet outil est basé sur Percona XtraBackup et a été étendu pour MariaDB. Il prend en charge le chiffrement et la compression.

Avantages :

  • Rapide et efficace pour les grandes quantités de données
  • Effectue des sauvegardes pendant le fonctionnement (sauvegarde à chaud)
  • Convient aux systèmes productifs avec des tables InnoDB

Inconvénients :

  • Ne fonctionne qu’avec InnoDB (pas avec MyISAM)
  • Configuration et restauration plus complexes

Autres options

  • mariadb-hotcopy : ancien outil pour les tables MyISAM (n’est plus maintenu)
  • LVM-Snapshots : sauvegarde à 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 conviviale

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 utilisateur avec des droits de sauvegarde (par exemple root). Ouvrez un terminal ou une connexion SSH. Assurez-vous que la commande mariadb-dump est installée et disponible dans le chemin d’accès.

Sauvegarder 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

Explication :

  • -u root : définit l’utilisateur root.
  • -p : demande la saisie du mot de passe.
  • --all-databases : sauvegarde toutes les bases de données existantes.
  • --result-file : définit le fichier cible pour la sauvegarde.

La sauvegarde contient toutes les bases de données, y compris la gestion des utilisateurs, les triggers, les vues et les tables système.

Sauvegarder une base de données spécifique

La commande --databases shop_db sauvegarde uniquement 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’instruction 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 restauration.

Sauvegarder plusieurs bases de données

Ci-dessous, vous trouverez la liste des bases de données qui seront incluses dans la sauvegarde. Un fichier SQL sera généré contenant les instructions pour toutes les bases de données listées.

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

Sauvegarder des tables individuelles

Nous indiquons la base de données et les tables souhaitées directement dans la commande. Cela est utile pour les exportations ciblées, par exemple lors de la migration de tables individuelles.

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

Options possibles pour mariadb-dump

Option Description
--no-data Sauvegarde uniquement la structure, pas les données
--no-create-info Sauvegarde uniquement les données, sans la structure des tables
--routines Sauvegarde les procédures et les fonctions
--events Sauvegarde les événements planifiés
--single-transaction Sauvegarde sans verrouillage pour les tables InnoDB
--quick Réduit les besoins en mémoire pour les grandes tables

MariaDB : automatiser les sauvegardes avec Cron

Automatisez les sauvegardes quotidiennes à l’aide d’un Cron job. Ouvrez le tableau Cron :

crontab -e
bash

Ajoutez cette ligne pour créer une sauvegarde 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’enregistrez pas les mots de passe directement dans le tableau Cron. Créez plutôt un fichier de configuration.my.cnf dans le répertoire d’accueil :

[client]
user=root
password=password
bash

Définissez 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 sauvegardes flexibles et indépendantes du système et pour de petites quantités de données. Pour les systèmes productifs avec de grandes quantités de données, mariadb-backup est recommandé. Effectuez des sauvegardes régulières et vérifiez-les en effectuant des restaurations tests. Seule une sauvegarde vérifiée vous protège de manière fiable contre la perte de données.

Cet article vous a-t-il été utile ?
Aller au menu principal