Guide Ultime sur la Sauvegarde de la Base de Données MariaDB

Table des matières
Qu'est-ce-que Mariabackup ?
Fonctionnalités de sauvegarde Mariabackup
Comment puis-je sauvegarder ma base de données MariaDB ?
Comment restaurer une sauvegarde de base de données MariaDB ?
Préparez le fichier de sauvegarde pour la restauration
Quelle est la différence entre une sauvegarde logique et physique de MariaDB ?
MariaDB : Outils de sauvegarde pour plusieurs bases de données
Comment exporter des bases de données via MySQLdump ?
Options de configuration et considérations
Mises à niveau de MariaDB
Acronis Cyber Protect Cloud
pour les fournisseurs de services
Autres langues disponibles :EnglishEspañol

Supposons que votre organisation utilise MariaDB pour gérer vos bases de données existantes comme alternative à MySQL. Dans ce cas, vous savez probablement déjà que vous avez de nombreuses options différentes pour sécuriser et sauvegarder vos bases de données ou les restaurer en cas de problème. Cependant, il n'est pas toujours clair quelles décisions vous devriez prendre pour maximiser votre sécurité et mieux protéger les ressources de votre entreprise.

Pour vous aider, cet article met en lumière de nombreuses bonnes pratiques et recommandations spécifiques pour les parties critiques de votre configuration MariaDB. Il offrira également un aperçu plus détaillé de la meilleure solution pour protéger les données critiques pour l'entreprise — une combinaison bien conçue de ces bonnes pratiques de configuration et d'un système de sauvegarde et de restauration reconnaissant les applications et à granularité fine.

Qu'est-ce-que Mariabackup ?

Mariabackup est un outil open source créé par MariaDB pour initier des sauvegardes en ligne pour les tables InnoDB, Aria, MyRocks et MyISAM. La fonctionnalité a été initialement dérivée de Percona XtraBackup 2.3.8 et fournit également des sauvegardes "à chaud" pour InnoDB. Mariabackup est disponible sur Windows et Linux.

  • --apply-log — Prépare la sauvegarde actuelle pour restaurer le serveur MariaDB.
  • --apply-log-only — Utilisé pour refaire la phase d'application du journal.
  • --backup — Initie la sauvegarde MariaDB
  • --binlog-info — Spécifie le chemin pour récupérer les coordonnées du journal binaire depuis le serveur.
  • --close-files — Utilisé pour déterminer s'il faut fermer les poignées de fichier.
  • --compress — Active la compression de la sauvegarde.
  • --compress-chunk-size Spécifie la taille du tampon opérationnel pour les threads de compression.
  • --compress-threads —  Spécifie le nombre de threads de compression.
  • --copy-back — Utilisé pour les opérations de restauration de sauvegarde vers le répertoire de données.
  • --databases — Spécifie les sauvegardes de tables et de bases de données.

Fonctionnalités de sauvegarde Mariabackup

L'outil de sauvegarde MariaDB dispose de diverses fonctionnalités pour sauvegarder plusieurs bases de données rapidement et efficacement. Les utilisateurs peuvent configurer des réplicas à partir d'une sauvegarde, chiffrer et compresser les sauvegardes, et restaurer une seule base de données ou des tables et partitions individuelles à partir d'une sauvegarde.

L'outil prend en charge les types de sauvegarde suivants :

Il prend également en charge SST avec Galera Cluster. La sauvegarde et la restauration MariaDB peuvent restaurer des tables via le chiffrement des données au repos, la compression des pages InnoDB et le moteur de stockage MyRocks. De plus, il minimise les verrous pendant la sauvegarde et assure un support de sauvegarde robuste pour tous les moteurs de stockage MariaDB Enterprise Backup.

Avantages

  • Gratuit à utiliser (open source)
  • Assure des niveaux élevés de cohérence et d'intégrité des données
  • Conçu spécifiquement pour les bases de données MariaDB
  • Facile à configurer grâce à une documentation et une interface claires

Inconvénients

  • Ne prend en charge que les fonctions de sauvegarde et de restauration pour MariaDB
  • Peut consommer beaucoup de ressources système lors des opérations de sauvegarde pour des bases de données très volumineuses
  • Nécessite un certain niveau de connaissance de la ligne de commande et des procédures de sauvegarde
  • Ne prend pas en charge le chiffrement des données au repos et la compression pour les sauvegardes complètes

Comment puis-je sauvegarder ma base de données MariaDB ?

Il existe trois options principales pour initier une sauvegarde de base de données MariaDB : Mariabackup, Mysqldump et une solution dédiée de sauvegarde et restauration.

Mariabackup

Mariabackup peut effectuer une sauvegarde complète et une sauvegarde incrémentielle pour la base de données MariaDB. Pour lancer une sauvegarde complète de la base de données , vous devez exécuter Mariabackup via l'option --backup combinée à l'option --target-dir pour spécifier l'emplacement de stockage de la sauvegarde. Pour les sauvegardes complètes, le répertoire cible doit être vide ou inexistant (avant d'initier la sauvegarde). Pour créer une sauvegarde complète, exécutez la commande suivante :

$ mariabackup --backup \

--target-dir=/var/mariadb/backup/ \

--user=mariabackup --password=mypassword

La durée et la taille de la sauvegarde dépendent des volumes de la base de données ou des tables que vous souhaitez sauvegarder. Vous pouvez interrompre le processus de sauvegarde car il ne modifie pas la base de données. Mariabackup écrira la sauvegarde dans le répertoire cible. Si un tel répertoire n'existe pas, l'outil en créera un pour vous. Si le répertoire cible existe mais n'est pas vide, l'outil générera une erreur et interrompra le processus. Après avoir créé une sauvegarde complète, vous pouvez initier une sauvegarde incrémentielle via la commande suivante :

$ mariabackup --backup \

--target-dir=/var/mariadb/inc1/ \

--incremental-basedir=/var/mariadb/backup/ \

--user=mariabackup --password=mypassword

mariadb-dump backup file (mysqldump)

MariaDB fournit un outil de sauvegarde intégré, Mysqldump, pour sauvegarder ou transférer plusieurs bases de données en CSV, XML ou autre texte délimité.

Pour exporter toutes les bases de données MariaDB, utilisez la commande : mysqldump -u xx -p -x -A > /data/backup/dbs.sql

Pour effectuer un vidage mémoire de plusieurs bases de données : shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sq ou pour effectuer un vidage mémoire de toutes les bases de données : shell> mysqldump --all-databases > all_databases.sql

Pour sauvegarder une base de données entière : shell> mysqldump db_name > backup-file.sql

Pour sauvegarder une seule table : mysqldump --user=xx --password --lock-tables db1 table1 > /data/backup/db1_table1.sql

Sauvegarde des bases de données Acronis

Acronis Cyber Protect Cloud dispose d'un agent dédié pour les sauvegardes MySQL / MariaDB. Suivez les étapes ci-dessous pour effectuer des sauvegardes sur une machine dans un état cohérent :

  • Pour Windows, assurez-vous que le dossier MySQL Tools est dans le `%PATH%` de Windows sur la machine. Assurez-vous que la connexion locale est autorisée pour le client MySQL sans passer explicitement les identifiants sur la machine sauvegardée.
  • Téléchargez et décompressez les scripts à exécuter avant et après la création de l'instantané.

Scripts pour Linux / Scripts pour Windows

Les scripts verrouilleront les tables via la commande "FLUSH TABLES WITH READ LOCK;" et les généreront après qu'Acronis ait complété l'instantané.

  • Placez config.sh dans le répertoire de travail des scripts.
  • Appliquez les scripts

Lors de la sauvegarde d'une machine physique, spécifiez les scripts dans la section "Commandes de capture de données pré-post" des options du plan de sauvegarde. Lors de la sauvegarde d'une machine virtuelle (VMware) au niveau de l'hyperviseur (sauvegarde sans agent), vous devez placer les scripts dans des dossiers spécifiques sur la machine virtuelle. Vous pouvez trouver les instructions de répertoire listées dans cet article.

Comment restaurer une sauvegarde de base de données MariaDB ?

Il y a une étape critique à compléter avant de restaurer avec succès une sauvegarde MariaDB — la préparation.

Préparez le fichier de sauvegarde pour la restauration

Les fichiers de données créés dans le répertoire cible par MariaDB ne sont pas cohérents à un moment donné. Étant donné que l'information est copiée à différents moments pendant le processus de sauvegarde, elle doit être mise à jour pour garantir une restauration réussie. Si vous tentez de la restaurer sans préparation, InnoDB identifie les incohérences et plante pour protéger le système d'un système corrompu. Pour préparer une sauvegarde pour la restauration, vous devez vous assurer qu'elle est cohérente via l'option --prepare .

$ mariabackup --prepare \

--target-dir=/var/mariadb/backup/

Restaurer une sauvegarde de base de données MariaDB

Une fois que vous avez une sauvegarde cohérente (ce qui signifie que la préparation est terminée), vous pouvez restaurer les données MariaDB en utilisant soit l'option --move-back soit l'option --copy-back. N'oubliez pas que l'option --move-back déplace la sauvegarde vers le datadir, ce qui signifie que les fichiers de sauvegarde originaux seront perdus.

  1. Arrêtez le processus du serveur MariaDB.
  2. Assurez-vous que le datadir est vide.
  3. Exécutez MariaDB avec l'une des deux options discutées ci-dessus :

$ mariabackup --copy-back \

--target-dir=/var/mariadb/backup/

  1. Corrigez les autorisations des fichiers.

Lorsque vous restaurez une seule base de données via Mariabackup, elle préserve les privilèges (à la fois fichier et répertoire) pour les données de sauvegarde. Cependant, elle écrira la sauvegarde sur le disque en tant qu'utilisateur et groupe restaurant la base de données. Donc, après une restauration MariaDB ou SQL, vous pourriez avoir besoin de spécifier le propriétaire du répertoire de données pour correspondre à l'utilisateur/groupe. Typiquement, mysql pour les deux. Vous pouvez changer récursivement la propriété des fichiers à l'utilisateur/groupe mysql via la commande :

$ chown -R mysql:mysql /var/lib/mysql/

Quelle est la différence entre une sauvegarde logique et physique de MariaDB ?

Essentiellement, les sauvegardes logiques contiennent les instructions SQL nécessaires pour restaurer les sauvegardes — par exemple, CREATE TABLE, CREATE DATABASE, INSERT — tandis que les sauvegardes physiques sont créées en copiant des fichiers et répertoires individuels. Ci-dessous, nous allons exposer les principales différences entre les sauvegardes physiques et logiques.

  • Les sauvegardes logiques sont plus flexibles

Les sauvegardes logiques peuvent être restaurées sur différentes versions de MariaDB, configurations matérielles ou SGBD. En revanche, vous ne pouvez pas importer des sauvegardes physiques sur un matériel très différent, un SGBD différent, ou même une version différente de MariaDB.

  • Vous pouvez effectuer des sauvegardes logiques à différents niveaux

Les sauvegardes logiques peuvent être effectuées au niveau de la base de données et des tables. En revanche, les sauvegardes physiques affectent les bases de données au niveau des répertoires et des fichiers. Dans le moteur de stockage InnoDB (et MyISAM), chaque table de la base de données a un ensemble équivalent de fichiers. Dans les versions antérieures à MariaDB 5.5, les fichiers InnoDB ont un nombre par défaut de tables stockées, ce qui signifie que vous ne pouvez pas sauvegarder par table.

  • Les sauvegardes logiques sont plus volumineuses qu'une sauvegarde physique correspondante.
  • Les sauvegardes logiques prennent plus de temps à sauvegarder et à restaurer qu'une sauvegarde physique correspondante.
  • Les sauvegardes logiques excluent les sauvegardes de journaux et les fichiers de configuration du processus de sauvegarde.

MariaDB : Outils de sauvegarde pour plusieurs bases de données

Vous pouvez utiliser plusieurs options de sauvegarde et de restauration pour sécuriser les données MariaDB.

Mariadb-backup

Comme discuté, Mariadb-backup est un fork de Percona XtraBackup. Il prend en charge le chiffrement des données au repos et la compression MariaDB 10.1.

fichier mariadb-dump

mariadb-dump (une version plus récente de mysqldump) effectue des sauvegardes logiques. C'est une excellente option pour une taille de données relativement petite, offrant les options de sauvegarde et de restauration les plus flexibles. Le fichier mariadb-dump peut vider le contenu dans des formats SQL, CSV ou XML pour être importé dans une autre base de données. Vous pouvez exporter le fichier vers d'autres versions de base de données MariaDB, MySQL ou un autre SGBD, comme discuté. (ce dernier est valable s'il n'y a pas d'instructions spécifiques au SGBD dans le vidage mémoire)

mariadb-vidage mémoire peut effectuer le vidage mémoire des déclencheurs et de plusieurs tables car ils font partie de la définition de la table. Néanmoins, il nécessite des paramètres supplémentaires pour recréer les procédures stockées, les événements et les vues. (par exemple, --routines--events)

Sauvegardes logiques InnoDB

Le pool de mémoire tampon est un composant critique d'InnoDB pour optimiser MariaDB. Le pool de mémoire tampon rassemble des informations et des index via des analyses de table pour stocker dans sa mémoire. Si les volumes InnoDB ne tiennent pas dans la mémoire, le pool de mémoire tampon doit contenir les données les plus fréquemment consultées. (avec un argument que les dernières données consultées sont également candidates pour le pool de mémoire tampon) Si vous ne présentez pas à InnoDB des fichiers de configuration appropriés, la fonctionnalité peut copier le contenu complet de la table lors des analyses de table dans le pool de mémoire tampon. Et comme InnoDB effectue une sauvegarde logique, cela implique toujours des analyses complètes de table.

Comment exporter des bases de données via MySQLdump ?

Mysqldump est une utilitaire de console qui exporte facilement les bases de données vers un fichier SQL. (basé sur du texte) Vous aurez besoin d'un nom de base de données et des identifiants pour un compte avec au moins un niveau d'accès moyen. (par exemple, vous pouvez utiliser un compte d'accès complet en lecture seule) Pour exporter le vidage mémoire SQL, utilisez cette commande :

$ mysqldump -u username -p database_name > data-dump.sql

La commande ne produira aucun résultat visuel, mais vous pouvez vérifier le journal des transactions et le contenu du fichier data-dump.sql pour vous assurer qu'il s'agit d'un fichier de vidage SQL légitime.

Options de configuration et considérations

Il existe de nombreuses options de configuration à considérer lors de la configuration et de la maintenance de MariaDB. Les sections suivantes aborderont l'authentification, les mots de passe, la mise en réseau, l'utilisation d'images Docker, et d'autres considérations pour les futures mises à niveau.

  • Authentification sans mots de passe

Si votre organisation préfère permettre aux utilisateurs de s'authentifier sans mots de passe, vous avez quelques options selon votre système d'exploitation (Linux ou Windows).

1. Linux : Sous Linux, utilisez le plugin d'authentification Unix_socket de MariaDB. Cela permet aux utilisateurs de se connecter à MariaDB via le socket Unix, mais uniquement si le nom de l'utilisateur correspond à l'utilisateur du système. De plus, l'utilisateur root est effectivement configuré pour utiliser l'authentification par socket Unix par défaut, ce qui empêche l'octroi accidentel d'un accès root à des connexions externes via un port d'écoute.

2.      Windows : Dans les environnements Windows, vous pouvez utiliser le plugin de canal nommé, qui offre une fonctionnalité similaire pour les déploiements basés sur Windows — il permet aux utilisateurs d'utiliser les identifiants du système d'exploitation lors de la connexion à MariaDB sur Windows.

  • Méthodes d'authentification multiples

MariaDB permet plusieurs méthodes d'authentification. Cela offre une plus grande flexibilité où les utilisateurs peuvent s'authentifier en utilisant un socket Unix ou, si cela ne fonctionne pas, utiliser un mot de passe.

  • Plugin de complexité des mots de passe

De plus, vous pouvez installer le plugin cracklib-password-check pour garantir que les utilisateurs créent des mots de passe complexes et non triviaux en tout temps — une étape essentielle pour maximiser la sécurité.  

  • Réflexions sur le stockage des mots de passe

Si vous devez stocker des mots de passe, nous vous suggérons de suivre ces bonnes pratiques spécifiques :

  • Ne stockez jamais les mots de passe en texte clair.
  • Assurez-vous que les mots de passe du serveur sont chiffrés. Notez que le chiffrement par défaut dans MariaDB est sha 1, qui n'est plus considéré comme sûr.
  • De plus, ed_25519 n'est pas activé par défaut mais est fortement recommandé.
  • Sécurisez la mise en réseau de MariaDB

Si votre configuration de déploiement le permet, il peut être préférable d'exécuter skip-networking sur le serveur avec un socket Unix chaque fois que possible. Cependant, si cela n'est pas possible, utilisez des noms d'hôte spécifiques pour les utilisateurs afin de limiter les adresses IP acceptées de l'extérieur. Notez que seules les connexions provenant de 192.168.1.10 seront acceptées.

  • Créez des utilisateurs spécifiques à l'application

Un scénario à noter : le déploiement par défaut permet à l'application un accès root. Non seulement cela n'est pas nécessaire, mais ce n'est pas une bonne idée car cela peut mener à des vulnérabilités à l'avenir. Par exemple, en cas de faille de sécurité dans l'application, l'ensemble du serveur de base de données peut être compromis. Au lieu de cela, il serait préférable de créer des utilisateurs dédiés et de n'accorder les droits que selon le principe du moindre privilège.

  • Dans le cas d'un réseau non fiable

Dans le cas où vous traitez avec un réseau non fiable, assurez-vous que les communications client-serveur sont chiffrées. Cela nécessite que des certificats SSL pour le serveur soient générés et configurés (utilisez la commande CREATE USER pour obtenir des informations sur les certificats spécifiés). Tout cela vous aide à vous connecter localement sans nécessiter SSL. En même temps, assurez-vous d'exiger SSL lors de la connexion depuis un hôte externe.

  • MariaDB en tant qu'image Docker

MariaDB est également livré en tant qu'image Docker. Cela signifie qu'il existe de nombreuses façons de configurer le serveur, y compris le partage du socket Unix via un volume ou l'exposition du port TCP/IP (3306). Pour des variables d'environnement utiles, vous pouvez utiliser MARIADB_ROOT_PASSWORD/MYSQL_ROOT_ PASSWORD.

Mises à niveau de MariaDB

Avec MariaDB, la compatibilité descendante est maintenue à travers toutes les versions. Les fonctionnalités sont rarement supprimées ; lorsqu'elles le sont, c'est généralement en raison de conflits avec la norme MySQL. Vous devez vous assurer que le système MariaDB est mis à jour. C'est important car MariaDB publie des correctifs de sécurité dès que possible après la version MySQL d'Oracle (généralement 1 à 2 jours), donc appliquer les mises à jour vous garantira d'avoir accès à tous ces correctifs aussi rapidement que possible.

Quelle est la meilleure solution pour sauvegarder et restaurer MariaDB ?

La meilleure solution pour protéger vos précieuses données et bases de données est un partenariat entre les meilleures pratiques applicatives et une solution de sauvegarde et de restauration granulaire et adaptée aux applications . Acronis offre une sauvegarde en un seul passage pour restaurer complètement les charges de travail MariaDB et MySQL et une restauration granulaire des bases de données et tables MySQL / MariaDB en cas de corruption. La solution effectue des sauvegardes au niveau du serveur, de la machine virtuelle, de la base de données ou des tables individuelles. Cela devient un avantage significatif pour les utilisateurs exécutant plusieurs sites Web ou applications simultanément.

Les fournisseurs d'hébergement et de services cloud apprécieront également le fait que la solution Acronis Cyber Protect Cloud soit entièrement configurable et déployable via les panneaux de contrôle et les systèmes d'automatisation qu'ils utilisent actuellement : cPanel, Plesk, DirectAdmin, WHMCS et bien d'autres. Combiner la cybersécurité, la protection des données et la sauvegarde offre une meilleure protection nécessitant moins de ressources — critique pour éviter les violations et garantir des restaurations sûres et sans malware. Pour en savoir plus sur les avantages d'utiliser Acronis Cyber Cloud comme plate-forme MSP, visitez dès aujourd'hui notre page solutions pour les fournisseurs de services.

Cet article a été traduit automatiquement via l’intelligence artificielle à titre d’information uniquement. Malgré tous nos efforts pour garantir l’exactitude de la traduction, des erreurs ou imprécisions peuvent subsister. En cas de divergence ou d’ambiguïté, la version officielle en anglais prévaut. Acronis décline toute responsabilité quant aux conséquences résultant d’erreurs de traduction ou d’interprétation du contenu.

À propos d'Acronis

Fondée en Suisse en 2003, Acronis est implantée dans 15 pays et emploie des collaborateurs dans plus de 50 pays. Acronis Cyber Protect Cloud est disponible en26 langues dans150 pays et utilisé par plus de21,000 fournisseurs de services pour assurer la protection de plus de750,000 entreprises.