Table des matières de l'article :
Dans le monde de la gestion de bases de données, la protection des données est cruciale pour assurer la continuité des activités et la sécurité des informations. Avec l'utilisation toujours croissante de MySQL et MariaDB, disposer d'une stratégie de sauvegarde efficace et fiable est une nécessité pour éviter la perte de données due à une panne matérielle, une erreur humaine ou une cyberattaque. Dans ce contexte, des outils tels que Percona XtraSauvegarde e Mariabackup ils sont largement utilisés pour effectuer des sauvegardes physiques de MySQL et MariaDB. En particulier, les formats de sauvegarde xbstream e Mbstream suscitent de plus en plus d’attention en raison de leur efficacité dans la gestion des sauvegardes et des restaurations. Cet article explore en détail la sauvegarde des bases de données MySQL et MariaDB, en se concentrant sur l'utilisation de xbstream et mbstream, et le rôle d'outils comme Mariabackup, qui est un fork de Percona XtraBackup.
L'importance de la sauvegarde dans MySQL et MariaDB
MySQL et MariaDB font partie des bases de données relationnelles les plus utilisées au monde. Cependant, comme pour tout système, il est essentiel de disposer d’un plan de sauvegarde bien structuré pour protéger vos données des événements inattendus. Des sauvegardes régulières de MySQL et MariaDB servent à atténuer les risques associés à :
- Erreurs humaines: Des modifications accidentelles ou incorrectes des données peuvent compromettre l'intégrité de la base de données. Avec une sauvegarde, vous pouvez rapidement restaurer votre base de données à son état précédent.
- Pannes matérielles: Les disques durs ou d'autres composants matériels peuvent tomber en panne, entraînant une perte de données. Avoir une sauvegarde à jour permet de minimiser les temps d'arrêt.
- Cyberattaques: Les bases de données peuvent être vulnérables aux failles de sécurité ou aux attaques de ransomwares. Une sauvegarde vous permet de récupérer vos données sans payer de rançon ni subir de pertes graves.
- Mises à jour du système: Les mises à jour logicielles ou matérielles peuvent introduire des bugs ou des problèmes de compatibilité. Les sauvegardes vous permettent de restaurer votre base de données en état de fonctionnement en cas de problème.
Outils de sauvegarde MySQL et MariaDB
Il existe plusieurs outils pour sauvegarder les bases de données MySQL et MariaDB, chacun avec des fonctionnalités uniques en termes de capacités, de mode d'exécution et d'objectif. Chaque outil possède ses propres forces et faiblesses en fonction du contexte, de la taille de la base de données et des besoins de récupération. Parmi les outils les plus courants figurent :
mysqldump
mysqldump est un outil natif et largement utilisé pour effectuer la sauvegarde logique des bases de données MySQL et MariaDB. Il fonctionne en exportant les données dans un format lisible, tel que des fichiers de script SQL ou CSV, qui peuvent ensuite être utilisés pour restaurer la base de données. Lors de l'exportation, mysqldump crée des commandes SQL qui recréent les structures de tables, insèrent des données et appliquent les clés primaires, index et contraintes.
Avantages de mysqldump:
- portabilité: Les sauvegardes produites par mysqldump sont facilement transférables vers d'autres serveurs ou plateformes, car le format SQL est universellement lisible par n'importe quelle instance de MySQL ou MariaDB.
- flexibilité: Vous pouvez sauvegarder des tables individuelles, des bases de données spécifiques ou un serveur de base de données entier, en personnalisant la sortie en fonction de vos besoins.
- Facilité d'utilisation: Étant un outil natif, il est préinstallé dans chaque distribution de MySQL et MariaDB, ne nécessite aucun logiciel supplémentaire et a une faible courbe d'apprentissage.
Inconvénients de mysqldump:
- Lent pour les grandes bases de données: Le principal défaut de mysqldump est son inefficacité avec les grandes bases de données. Étant donné qu'il exporte les données au format texte, le temps requis pour l'exportation et la récupération augmente considérablement à mesure que la taille de la base de données augmente.
- Manque de sauvegardes incrémentielles: mysqldump ne prend pas en charge les sauvegardes incrémentielles, ce qui signifie que chaque sauvegarde est complète et contient toutes les informations. Cela augmente le temps et l’espace de stockage requis par rapport aux solutions physiques proposant des sauvegardes incrémentielles.
- blocs: Dans certains scénarios, notamment lorsqu'il n'est pas utilisé en mode non bloquant (
--single-transaction
pour les bases de données InnoDB), peut provoquer des verrous sur la base de données, interrompant temporairement l'accès aux données pendant l'exécution de la sauvegarde.
Percona XtraSauvegarde
Percona XtraSauvegarde dont nous avons beaucoup parlé dans cet article Sauvegarde MySQL lente et serveur en panne lorsque Google passe, est l'un des outils de sauvegarde physique les plus populaires pour MySQL et MariaDB. Il est développé par Percona, une société spécialisée dans les solutions open source pour MySQL, MariaDB et MongoDB. Cet outil est particulièrement populaire dans les environnements de production car il effectue sauvegardes physiques sans verrouiller la base de données, ce qui permet à la base de données de rester opérationnelle pendant le processus de sauvegarde.
Avantages de Percona XtraBackup:
- Sauvegarde sans blocage: L'un des principaux avantages est qu'il effectue des sauvegardes sans nécessiter le verrouillage de la base de données. Cela signifie que les opérations de lecture et d'écriture peuvent se poursuivre normalement pendant l'exécution de la sauvegarde.
- Sauvegardes physiques: Puisque XtraBackup copie directement les fichiers de données (tels que
.ibd
pour les tables InnoDB), le processus de sauvegarde est beaucoup plus rapide que mysqldump, notamment pour les grandes bases de données. - Sauvegardes incrémentielles: XtraBackup prend en charge les sauvegardes incrémentielles et différentielles, réduisant ainsi le temps de sauvegarde et l'espace disque. Avec les sauvegardes incrémentielles, seules les données modifiées depuis la dernière sauvegarde complète sont copiées, ce qui améliore considérablement l'efficacité.
- Ripristino rapide: Étant donné que la restauration d'une sauvegarde physique implique uniquement la copie de fichiers de données, vous pouvez restaurer une base de données volumineuse beaucoup plus rapidement qu'une sauvegarde logique.
- Compression et cryptage: XtraBackup prend également en charge la compression des sauvegardes pour réduire l'utilisation de l'espace de stockage et le cryptage pour protéger les données sensibles.
Inconvénients de Percona XtraBackup:
- Une plus grande complexité: En tant qu'outil avancé, XtraBackup nécessite une compréhension plus approfondie des configurations et des opérations de base de données, notamment en ce qui concerne la gestion des journaux et l'application des modifications lors de la récupération.
- Il ne prend pas en charge nativement toutes les configurations MariaDB: Bien que XtraBackup prenne en charge de nombreuses fonctionnalités de MariaDB, il a été principalement conçu pour MySQL et Percona Server, de sorte que certaines fonctionnalités spécifiques à MariaDB peuvent ne pas être entièrement compatibles.
Mariabackup
Mariabackup c'est une fourchette de Percona XtraSauvegarde, développé spécifiquement pour gérer les sauvegardes physiques de MariaDB. La création de Mariabackup a été rendue nécessaire par la divergence progressive entre MySQL et MariaDB, deux bases de données qui, malgré des origines communes, ont introduit des fonctionnalités différentes au fil du temps. En raison de cette divergence, Percona XtraBackup, initialement compatible avec les deux bases de données, a progressivement perdu la prise en charge des versions plus récentes de MariaDB. Mariabackup est donc née pour combler cette lacune et fournir un outil de sauvegarde spécifique aux installations MariaDB.
Avantages de Mariabackup:
- Optimisé pour MariaDB: Mariabackup a été conçu spécifiquement pour gérer les modifications apportées au moteur de stockage InnoDB de MariaDB et pour prendre en charge d'autres fonctionnalités spécifiques au système, telles que les tables Aria et les nouvelles fonctionnalités de MariaDB qui ne sont pas présentes dans MySQL.
- Sauvegarde sans blocage: Comme XtraBackup, Mariabackup effectue également des sauvegardes physiques sans bloquer la base de données, ce qui signifie qu'elle peut être utilisée dans des environnements de production sans interrompre le service.
- Compatibilité avec les moteurs MariaDB: En plus d'InnoDB, Mariabackup prend également en charge la sauvegarde des tables Aria et d'autres fonctionnalités uniques de MariaDB, ce qui en fait l'outil idéal pour ceux qui ont choisi cette base de données.
- Sauvegardes incrémentielles: Mariabackup hérite de la capacité d'effectuer des sauvegardes incrémentielles de XtraBackup, ce qui signifie que vous pouvez effectuer des sauvegardes efficaces et rapides en copiant uniquement les données modifiées.
Inconvénients de Mariabackup:
- Moins de soutien communautaire: Bien que Mariabackup soit développé par l'équipe MariaDB, il n'a pas encore la même popularité et le même support communautaire que des outils comme Percona XtraBackup ou mysqldump.
- Concentrez-vous uniquement sur MariaDB: Contrairement à XtraBackup, qui peut être utilisé pour MySQL, MariaDB et Percona Server, Mariabackup est spécifique à MariaDB et ne peut pas être utilisé pour effectuer des sauvegardes d'autres versions de MySQL.
Mariabackup est l'équivalent MariaDB de Percona
Sauvegardes logiques vs sauvegardes physiques
Lorsqu'il s'agit de sauvegardes de bases de données, nous pouvons distinguer deux approches principales : sauvegardes logiques e sauvegardes physiques, chacun avec ses propres avantages et inconvénients en fonction de vos besoins en infrastructure et de la taille de votre base de données.
Sauvegardes logiques
Les sauvegardes logiques sont créées en exportant les données de la base de données dans un format lisible, tel que SQL ou CSV. Ce type de sauvegarde ne sauvegarde pas seulement les données, il capture également la structure des tables, y compris les index, les contraintes et, dans certains cas, les clés étrangères. Étant au format texte, ils sont faciles à lire, à modifier et à interpréter. Ils sont particulièrement utiles lorsque vous souhaitez migrer des données vers une autre plateforme ou une autre version de base de données.
Avantages:
- portabilité: Les sauvegardes logiques étant enregistrées au format SQL, elles peuvent être facilement transférées et restaurées vers d'autres serveurs ou même des bases de données en utilisant différentes versions du logiciel. Cela rend les sauvegardes logiques particulièrement adaptées aux scénarios de migration.
- flexibilité: Ils permettent l'extraction et la restauration de tables individuelles ou de parties spécifiques de données, facilitant les opérations de mise à jour sélectives de la base de données ou les restaurations partielles, utiles pour les opérations de récupération de données au niveau granulaire.
inconvénients:
- Inefficacité pour les grandes bases de données: À mesure que la taille de votre base de données augmente, les sauvegardes logiques deviennent moins pratiques. La création d'une sauvegarde prend du temps, car toutes les données doivent être converties en commandes SQL et le fichier résultant peut être très volumineux, occupant plus d'espace de stockage qu'une sauvegarde physique.
- Temps de récupération longs: La restauration d'une base de données à partir d'une sauvegarde logique prend du temps, car chaque commande SQL doit être réexécutée pour recréer des tables, des données et des index. Cela peut rendre les restaurations particulièrement lentes pour les bases de données volumineuses, compromettant les temps de récupération en cas de sinistre.
Sauvegardes physiques
Les sauvegardes physiques sont créées en copiant directement les fichiers binaires que la base de données utilise pour stocker les données et les structures (par exemple, les fichiers InnoDB .ibd ou les fichiers de journalisation). Cette méthode est plus efficace que les sauvegardes logiques, car elle ne nécessite pas de convertir les données au format texte. Les fichiers de base de données sont copiés exactement tels qu'ils sont sur le disque, garantissant une sauvegarde rapide et compacte, particulièrement utile pour les bases de données volumineuses ou celles contenant un volume de données élevé.
Avantages:
- Vitesse: Étant donné que les données ne sont pas converties dans un format intermédiaire tel que le texte, la copie de fichiers binaires est beaucoup plus rapide que la copie de sauvegardes logiques. Il s'agit d'un avantage considérable, en particulier pour les bases de données comportant de gros volumes de données ou dans des environnements où les temps d'arrêt doivent être réduits au minimum.
- Efficacité de l'espace: Les sauvegardes physiques nécessitent moins d'espace de stockage, car elles copient uniquement les fichiers essentiels et peuvent être compressées pendant le processus de sauvegarde. Cela permet une gestion plus optimisée de l’espace, réduisant ainsi la charge sur un stockage limité.
- Ripristino rapide: Le processus de restauration à partir d'une sauvegarde physique est beaucoup plus rapide. Cela implique principalement de copier les binaires sur le serveur et d'appliquer des redo logs pour assurer la cohérence de la base de données, en évitant le retraitement de toutes les données comme dans les sauvegardes logiques.
inconvénients:
- Moins de portabilité: Les sauvegardes physiques sont strictement liées à la version spécifique de la base de données et aux configurations du système d'exploitation. Ils ne peuvent pas être facilement migrés entre différentes versions de bases de données (par exemple, entre MySQL et MariaDB ou différentes versions du même SGBD) sans une compatibilité adéquate entre les systèmes.
- Une plus grande complexité: La gestion des sauvegardes physiques, notamment lors de la mise en œuvre de stratégies avancées telles que les sauvegardes incrémentielles ou différentielles, nécessite une expertise technique approfondie. Les administrateurs doivent être capables de gérer correctement les fichiers journaux et de garantir la cohérence des sauvegardes, ce qui ajoute de la complexité à la configuration et à la maintenance du système de sauvegarde.
Des outils comme Percona XtraSauvegarde e Mariabackup ils utilisent des sauvegardes physiques pour garantir rapidité et efficacité, sans nécessiter le verrouillage de la base de données pendant le processus de sauvegarde, ce qui les rend idéaux pour les environnements de production avec de grandes quantités de données et la nécessité de minimiser les temps d'arrêt.
Percona XtraBackup et le format xbstream
Percona XtraSauvegarde est un outil open source conçu pour effectuer des sauvegardes physiques cohérentes des bases de données MySQL, MariaDB et Percona Server. Il fonctionne en copiant les binaires de la base de données et en appliquant des journaux pour maintenir la cohérence des données. L'un des principaux avantages de XtraSauvegarde est la possibilité d'effectuer des sauvegardes sans bloquer les opérations de base de données, un aspect fondamental dans les environnements de production.
Dans des scénarios réels, comme celui illustré ci-dessous, où l'espace disque disponible est limité, comme dans le cas d'un serveur Web avec un serveur MariaDB qui gère une base de données de 83 Go, mais ne dispose que de 14 Go d'espace disque libre, en utilisant un une sauvegarde locale ne serait pas pratique. Normalement, vous ne pouvez pas générer une copie locale de la base de données, la compresser et la transférer vers un SAN externe, en raison d'un espace insuffisant. Cependant, en utilisant le format xbstream o Mbstream, vous pouvez surmonter cette limitation en transférant directement la sauvegarde physique via SSH vers un SAN externe, sans qu'il soit nécessaire de générer au préalable une copie locale.
Le format xbstream en fait, il vous permet de diviser les fichiers de sauvegarde en blocs compressés plus petits et de les transférer en temps réel, en profitant de la streaming des données. Cela vous permet de le sauvegarder et de le transférer vers un autre système, réduisant ainsi la charge sur le disque local et résolvant le problème de l'espace limité, en évitant d'avoir à générer un fichier volumineux localement.
Un exemple de commande pour créer une sauvegarde avec Percona XtraBackup et le format xbstream est :
xtrabackup --backup --stream=xbstream --target-dir=/path/to/backup > backup.xbstream
Cette commande sauvegarde vos données et les écrit au format xbstream, qui peut être compressé pour réduire l'espace nécessaire.
Pour restaurer la sauvegarde à partir du format xbstream :
xbstream -x < backup.xbstream
Cela extraira les fichiers binaires, qui pourront ensuite être utilisés pour la récupération de la base de données.
Mariabackup : Un fork de Percona XtraBackup pour MariaDB
Mariabackup est une version dérivée de Percona XtraSauvegarde, développé et maintenu par l'équipe MariaDB pour fournir un support spécifique à MariaDB. Mariabackup est né comme un fork de XtraBackup pour combler la divergence croissante entre MySQL et MariaDB, car Percona XtraBackup a été conçu principalement pour MySQL et Percona Server, tandis que Mariabackup est optimisé pour fonctionner avec MariaDB.
MariaDB et MySQL ont suivi des chemins de développement distincts après la scission du projet original, MariaDB introduisant des fonctionnalités et des améliorations introuvables dans MySQL. En raison de ces différences, Percona XtraBackup n'était plus entièrement compatible avec les versions plus récentes de MariaDB. En conséquence, l'équipe MariaDB a créé Mariabackup en tant qu'outil dédié pour gérer les sauvegardes physiques MariaDB.
Mariabackup Il fonctionne de manière similaire à Percona XtraBackup et utilise également le format xbstream pour effectuer des sauvegardes physiques cohérentes sans interrompre le fonctionnement de la base de données. Cela signifie que, comme Percona XtraBackup, Mariabackup peut effectuer des sauvegardes incrémentielles, différentielles et compressées, ce qui en fait une solution idéale pour les besoins de sauvegarde de MariaDB dans les environnements de production.
Un exemple de commande pour effectuer une sauvegarde avec Mariabackup :
mariabackup --backup --stream=xbstream --target-dir=/path/to/backup > backup.xbstream
Mariabackup propose une solution optimisée pour MariaDB, avec prise en charge des fonctionnalités spécifiques à MariaDB, telles que le format de données InnoDB et les tables Aria.
Le format mbstream
Le format Mbstream c'est un format de streaming similaire à xbstream, mais légèrement plus générique. Il est utilisé pour gérer les sauvegardes physiques, permettant une sauvegarde et une restauration parallèles, améliorant ainsi les performances dans les grands environnements. L'une des principales différences entre xbstream et mbstream est la capacité de ce dernier à exploiter plusieurs threads pour effectuer des sauvegardes, ce qui le rend idéal pour les serveurs dotés de grandes bases de données et d'infrastructures multithread.
Le format mbstream prend en charge la compression native et le fractionnement des fichiers de sauvegarde en morceaux plus petits, tout comme xbstream, offrant une alternative flexible à ceux qui souhaitent optimiser le processus de sauvegarde.
Pour effectuer une sauvegarde au format mbstream avec XtraBackup ou Mariabackup, vous utilisez la commande suivante :
xtrabackup --backup --stream=mbstream --target-dir=/path/to/backup > backup.mbstream
Le processus de récupération suit une logique similaire :
mbstream -x < backup.mbstream
Comparaison entre xbstream et mbstream
Les deux formats xbstream e Mbstream Ils ont leurs avantages en termes de gestion des sauvegardes MySQL et MariaDB, mais ils présentent quelques différences qui doivent être prises en compte lors du choix du format à utiliser.
Avantages de xbstream:
- Compatibilité optimale avec XtraBackup et Mariabackup: xbstream est étroitement intégré à ces outils, offrant des performances optimales lors de l'exécution de sauvegardes physiques de MySQL et MariaDB.
- Compression native: xbstream inclut la prise en charge de la compression, réduisant ainsi l'espace de stockage nécessaire pour les sauvegardes.
- Facilité d'utilisation: Pour ceux qui utilisent XtraBackup ou Mariabackup, xbstream est le format par défaut et donc le choix le plus simple et le plus immédiat.
Avantages de mbstream:
- Sauvegardes parallèles: mbstream prend en charge la sauvegarde et la restauration parallèles, améliorant ainsi les performances sur les machines multithread et les serveurs dotés de grandes bases de données.
- Plus de flexibilité: mbstream peut être utilisé avec une plus large gamme d'outils et n'est pas strictement lié à XtraBackup ou Mariabackup.
Conclusions
Assurer une sauvegarde régulière et fiable des bases de données MySQL et MariaDB est essentiel pour la continuité opérationnelle de toute infrastructure informatique. Des outils comme Percona XtraSauvegarde e Mariabackup offrent des solutions robustes pour gérer les sauvegardes physiques, tandis que les formats xbstream e Mbstream fournir des méthodes efficaces pour compresser et gérer les données de sauvegarde. Le choix entre xbstream et mbstream dépend principalement des besoins spécifiques de votre système, tels que la taille de la base de données, les performances du serveur et les exigences de récupération. Cependant, pour ceux qui travaillent avec MariaDB, l'utilisation de Mariabackup est un choix naturel, compte tenu de son optimisation spécifique pour ce système de base de données.
Avoir une stratégie de sauvegarde solide est essentiel pour protéger vos données contre les catastrophes inattendues, et l'utilisation d'outils et de formats modernes tels que xbstream et mbstream garantit que les sauvegardes sont effectuées efficacement, réduisant ainsi la taille, les temps d'arrêt et minimisant la perte de données.