Mariabackup : sauvegarder à chaud les bases de données MariaDB
Cet article présente MariaDB-Backup, appelé aussi Mariabackup, pour effectuer la sauvegarde et la restauration complète d’instances SQL. L’objectif : disposer d’un outil beaucoup plus performant que Mysqldump pour sauvegarder et restaurer des bases de données.
Si vous gérez des serveurs de bases de données MariaDB ou MySQL, vous devez veiller à effectuer une sauvegarde des bases de données. L’outil par défaut et natif pour réaliser cette tâche, c’est mysqldump. Mais, il montre rapidement ses limites au niveau des performances, car les traitements sont très longs (trop longs, même je dirais) sur des grosses bases. C’est ici qu’intervient MariaDB-Backup, un outil gratuit et open source à l’effigie de MariaDB.
Cet outil permet de réaliser des sauvegardes physiques “à chaud” (sans interruption de service pour le moteur InnoDB), garantissant une cohérence parfaite des données. Il est particulièrement adapté aux environnements de production exigeants, où la rapidité de la sauvegarde et de la restauration est un critère important.
Dans ce tutoriel, nous allons explorer l’installation et l’utilisation de Mariabackup pour sauvegarder et restaurer une instance MariaDB.
Sommaire
- Comprendre la différence : sauvegarde logique vs physique
- Installation de mariabackup
- Créer un utilisateur dédié pour les sauvegardes
- Créer une première sauvegarde avec Mariabackup
- Restaurer une sauvegarde avec Mariabackup
- Les sauvegardes incrémentielles avec Mariabackup
- Fonctions avancées de Mariabackup
- Conclusion
- FAQ MariaDB-Backup
Comprendre la différence : sauvegarde logique vs physique
Avant de manipuler l’outil, il est important de comprendre ce qui différencie Mariabackup de Mysqldump, car l’approche est différente au niveau de la façon de sauvegarder les données.
- Sauvegarde logique () : extraire les données sous forme de requêtes SQL (, ). Pour restaurer, le serveur doit relire et exécuter ces milliers de requêtes une par une, ce qui consomme beaucoup de CPU et d’E/S disque.
- Sauvegarde physique () : copier directement les fichiers bruts de la base de données (les fichiers pour les bases avec le moteur InnoDB) depuis l’espace de stockage. La restauration consiste, en bref, à remettre ces fichiers à leur place. C’est donc beaucoup plus rapide, surtout pour des bases importantes, dont la taille excède 10 Go.
Il est à noter que Mariabackup est un fork de l’outil Percona XtraBackup adapté spécifiquement pour garantir la compatibilité avec les fonctionnalités de MariaDB (comme le chiffrement des données).
Note : le fonctionnement de Mariabackup est décrit sur cette page.
Installation de mariabackup
La première étape consiste à installer le paquet pour disposer de l’outil Mariabackup.
- Installation sur Debian, Ubuntu et dérivés
- Installation sur CentOS, AlmaLinux et RHEL
Note : MariaDB-Backup est aussi disponible sur Windows, via les outils de sauvegarde disponible dans le package MSI global de MariaDB.
Avant de continuer, je vous encourage à comparer les versions de Mariabackup et du serveur MariaDB. En effet, il est préférable d’utiliser les mêmes versions, et surtout une version de Mariabackup ne pourra pas sauvegarder une version supérieure du serveur MariaDB.
Dans l’exemple ci-dessous, nous pouvons constater que nous disposons bien de la version de Mariabackup adaptée à la version du serveur.
Créer un utilisateur dédié pour les sauvegardes
Bien qu’il soit possible d’utiliser l’utilisateur pour accéder à l’ensemble des données des base de données, ce n’est pas une bonne pratique en matière de sécurité. Il est recommandé de créer un utilisateur avec les privilèges minimaux requis, qui sera dédié à la réalisation des sauvegardes via l’outil Mariabackup.
Connectez-vous à votre instance MariaDB :
Exécutez les commandes SQL suivantes pour créer l’utilisateur. Ici, l’utilisateur est nommé et il aura le mot de passe . Je vous encourage à personnaliser ces valeurs.
Cet utilisateur aura des permissions sur l’ensemble des bases de données, mais il n’aura pas toutes les permissions (en effet, ce n’est pas un ).
Créer une première sauvegarde avec Mariabackup
Le processus de sauvegarde avec la commande effectue une copie des fichiers de votre instance MariaDB, tout en tenant compte des spécificités qu’implique la sauvegarde de bases de données. Autrement dit, ce n’est pas juste une vulgaire copie de fichiers.
Voici la commande à exécuter pour réaliser une sauvegarde complète de l’ensemble des bases de données :
Voici quelques explications :
- : réaliser une sauvegarde complète.
- : le nombre de threads à utiliser pour traiter les données en parallèle, ici 4. A adapter selon la charge du serveur et les capacités du processeur.
- : spécifie l’emplacement des données de l’instance MariaDB. Ici, c’est l’emplacement par défaut.
- : spécifie l’emplacement de la sauvegarde, ici c’est un répertoire dynamique nommé sous la forme . Par exemple : .
- : le nom du compte à utiliser pour agir auprès de l’instance MariaDB (compte créé précédemment).
- : le mot de passe de l’utilisateur spécifié.
Patientez pendant l’opération de sauvegarde.

La fin de l’opération devrait se terminer avec des journaux comme ceux présentés ci-dessous. Si l’opération réussit, vous verrez le message suivant à la fin de la sortie standard :
Vous pourrez constater que les données entre la source et la destination sont les mêmes. Le tout a été effectué sans perturber l’instance MariaDB en cours d’exécution.
Restaurer une sauvegarde avec Mariabackup
À ce stade, la sauvegarde dans réalisée précédemment est incohérente. Je m’explique : elle contient des fichiers copiés à des instants différents (ce qui est normal) et le journal des transactions brut. Un garde-fou au niveau d’InnoDB empêchera la restauration pour éviter la corruption de la base. De ce fait, il est nécessaire de préparer la sauvegarde avant de pouvoir la restaurer.
Exécutez la commande suivante en spécifiant le chemin vers la sauvegarde à préparer :
Patientez un instant.
Une fois cette étape réalisée, vous pouvez envisager la restauration. Deux modes sont proposés :
- : pour copier les données de la sauvegarde dans le dossier de MariaDB, tout en conservant la source.
- : pour déplacer les données de la sauvegarde directement vers le dossier de MariaDB.
Avant de lancer la restauration, vous devez arrêter l’instance MariaDB, ce qui va engendre une interruption de service.
Ensuite, le répertoire de données (généralement ) doit être vide. En effet, mariabackup refusera d’écrire dans un répertoire non vide par sécurité. Soit vous purgez le répertoire, soit vous le renommez et vous en créez un nouveau (plus sécurisant, mais consomme plus d’espace disque).
Lancez la restauration des données, avec le mode de votre choix, tout en précisant le répertoire de la sauvegarde ().
Patientez un instant.

Si vous avez exécuté Mariabackup avec ou , ce qui est normal, alors les fichiers restaurés appartiendront à . MariaDB ne pourra pas démarrer car il ne pourra pas les lire… Il faut redonner modifier les permissions pour définir l’utilisateur :
Vous pouvez maintenant redémarrer le service :
La restauration des données est terminée. Simple et efficace !
Les sauvegardes incrémentielles avec Mariabackup
Pour les bases volumineuses, faire une sauvegarde complète chaque jour est coûteux en espace disque et en bande passante. Les sauvegardes incrémentielles permettent de ne copier que les pages de données modifiées depuis la dernière sauvegarde complète. Cela fonctionne grâce au LSN (Log Sequence Number). Chaque page de données InnoDB possède un numéro de séquence. Mariabackup vérifie si le LSN de la page en mémoire est supérieur au LSN de la sauvegarde précédente.
La première étape consiste à créer une sauvegarde complète, sur le même principe que la sauvegarde effectuée précédemment (attention au nom du répertoire). Par exemple :
Puis, réalisez une sauvegarde incrémentielle en précisant deux informations importantes :
- : le répertoire où stocker la sauvegarde incrémentielle,
- : le répertoire où se situe la sauvegarde complète de référence.
Cette opération va créer un dossier dédié à la sauvegarde incrémentielle contenant uniquement les différences (un ensemble de fichiers ). Par exemple :
Quand vous allez vouloir restaurer une sauvegarde à partir d’une sauvegarde incrémentielle, l’étape de préparation sera plus complexe. Il faut appliquer les incréments les uns après les autres sur la sauvegarde de base.
Attention : seule la dernière étape de la chaîne doit être une préparation standard. Les étapes intermédiaires doivent utiliser l’option pour empêcher le “rollback” des transactions non commises, car elles pourraient être commises dans l’incrément suivant.
Vous devez préparer la sauvegarde complète (de base) comme ceci :
Puis, appliquer les changements de la sauvegarde incrémentale au niveau de la sauvegarde complète :
Une fois que tous les incréments sont appliqués au dossier de base, vous pouvez faire un de ce dossier de base vers comme vu précédemment.
Fonctions avancées de Mariabackup
Mariabackup supporte un mécanisme de streaming, ce qui signifie que vous pouvez utiliser le pipeline pour lui envoyer des données ou pour qu’il envoie des données à un autre outil. Cela facilite son intégration avec d’autres outils, notamment pour chiffrer et sauvegarder les sauvegardes.
L’exemple ci-dessous permet de compresser la sauvegarde (via gzip), puis de chiffrer la sauvegarde utilisant l’algorithme AES-CBC 256 bits (avec la clé de chiffrement spécifiée, à savoir ici ). De ce fait, le fichier de sortie n’est pas précisé au niveau de la commande mariabackup, mais en dernière étape : . L’option est donc supprimée, tandis que l’option a été ajoutée pour activer le mode streaming.
Cette extension composée () n’est pas un hasard : elle suit une convention de nommage logique qui décrit, dans l’ordre, toutes les transformations que vos données ont subies via les “pipes” () de la commande complète
Vous pouvez utiliser d’autres outils comme 7-Zip ou Zstd pour la compression, au lieu de GZip. Cette approche rend l’utilisation de Mariabackup très flexible. Il y a bien une option native pour la compression, nommée , mais elle est dépréciée.
Conclusion
L’utilisation de MariaDB-Backup est beaucoup plus pratique et efficace que Mysqldump pour la sauvegarde d’instances MariaDB, en particulier lorsqu’il y a des bases de plus de 10 Go. Il y a une différence importante au niveau des performances, en comparaison de la sauvegarde logique opérée par Mysqldump. Surtout, MariaDB-Backup est moins dépendant des performances de votre processeur que Mysqldump, car il agit en premier lieu au niveau du stockage.
Pour terminer, n’oubliez pas : une sauvegarde n’existe que si elle a été testée et restaurée avec succès.
FAQ MariaDB-Backup
Quelle est la différence principale entre mysqldump et mariabackup ?
effectue une sauvegarde logique (export SQL), lente à restaurer pour les grosses bases. De son côté, effectue une sauvegarde physique (copie des fichiers intelligentes), beaucoup plus rapide et permettant des sauvegardes à chaud cohérentes.
Puis-je utiliser mariabackup sur un serveur Windows ?
Oui, est disponible pour Windows, mais son utilisation est plus fréquente et mieux documentée sur les environnements Linux. Il est disponible via le paquet d’installation MSI de MariaDB pour Windows.
Faut-il arrêter la base de données pour faire une sauvegarde ?
Non, tout l’intérêt de est de faire des sauvegardes “à chaud” (hot backup) sans interrompre le service de production.
Comment automatiser ces sauvegardes ?
L’idéal est de créer un script Bash qui gère la rotation (full le dimanche, incrémentielles la semaine, par exemple) et planifiez ensuite l’exécution de ce script via ou une unité .
Pourquoi ai-je une erreur de permission suite à la restauration ?
C’est souvent parce que les fichiers restaurés appartiennent à l’utilisateur qui a lancé la commande (par exemple : ). Il faut impérativement faire un sur le dossier de données MariaDB.