Sauvegarde et restauration des bases de données MariaDB à partir de la ligne de commande

MariaDB est une variante de MySQL gérée par la communauté. Dans ce tutoriel, je vais vous montrer comment sauvegarder et restaurer des bases de données MariaDB à l’aide de l’utilitaire mysqldump.

Didacticiel Vidéo:

mysqldump

mysqldump est l’utilitaire que nous allons utiliser pour sauvegarder notre base de données MariaDB. Il a été conçu spécifiquement pour la sauvegarde. L’avantage de mysqldump est que vous n’avez pas besoin d’arrêter le service MariaDB pour faire une sauvegarde. Il peut être utilisé pour sauvegarder une seule base de données, plusieurs bases de données, et toutes les bases de données. Par défaut, il crée un fichier dump qui contient toutes les instructions nécessaires pour recréer la base de données.

Journal binaire

Le journal binaire enregistre toutes les modifications apportées à la base de données. Le journal binaire peut être basé sur les déclarations et sur les lignes. Son principal objectif est de permettre la réplication et la sauvegarde. Pour pouvoir sauvegarder et restaurer ultérieurement votre base de données, le journal binaire doit être activé.

Pour activer le journal binaire, modifiez le fichier de configuration du serveur MariaDB. Le nom du fichier de configuration peut être différent selon les distributions Linux. Normalement, il est situé dans /etc/my.cnf ou /etc/mysql/my.cnf. Sur ubuntu, il peut aussi être /etc/mysql/mariadb.conf.d/50-server.cnf.

Ouvrez le fichier de configuration, trouvez la ligne suivante dans la section [mysqld].

#log_bin = /var/log/mysql/mysql-bin.log

Supprimez le caractère # pour décommenter cette ligne. Enregistrez et fermez le fichier. Si vous ne la trouvez pas, ajoutez-la manuellement. Après cela, redémarrez le serveur de base de données MariaDB.

sudo systemctl restart mysql

ou

sudo service mysql restart

Maintenant le journal binaire est activé.

Note: Vous ne devez pas supprimer manuellement le fichier journal binaire(/var/log/mysql/mysql-bin.log) après qu’il ait été activé, ou MariaDB pourrait être incapable de démarrer.

Sauvegarde d’une seule base de données

Pour sauvegarder une seule base de données, saisissez la commande suivante à l’invite du shell.

mysqldump -u root -p nom_de_base > nom_de_base.sql

Remplacez nom_de_base par le nom de votre base de données actuelle. nom_de_base.sql est le fichier de vidage SQL.

Sauvegarde de plusieurs bases de données

Pour sauvegarder plusieurs bases de données, vous devez ajouter l’option --databases à mysqldump.

mysqldump -u root -p --databases db_name1 db_name2...  > multi_database.sql

Sauvegarde de toutes les bases de données

Pour sauvegarder toutes vos bases de données, vous devez ajouter l’option --all-databases à mysqldump.

mysqldump -u root -p --all-databases > all-databases.sql

Sauvegarde de la base de données MariaDB avec compression

Pour compresser le fichier .sql, il suffit de passer la sortie de mysqldump à gzip, ce qui peut réduire considérablement la taille du fichier de sauvegarde.

mysqldump -u root -p nom_de_base | gzip > nom_de_base.sql.gz

Conseil

Si vous souhaitez enregistrer automatiquement l’heure à laquelle la base de données est sauvegardée, ajoutez le texte suivant au nom du fichier de sauvegarde.

`date "%Y- %R"`

Comme ceci

mysqldump -u root -p nom_de_base > nom_de_base_`date"%Y- %R"`.sql

Restauration d’une seule base de données

Tout d’abord, créez une base de données sur la machine cible à l’aide de mysql

sudo mysql -u rootcreate database database_name;exit ;

Restaurez ensuite la sauvegarde sur votre base de données

mysql -u root -p nom_base_de_données < nom_base_de_données.sql

Restauration de plusieurs bases de données

mysql -u root -p < multi-databases.sql

Les bases de données existantes sur la machine cible seront intactes.

Restaurer toutes les bases de données

mysql -u root -p < all-databases.sql

Les instructions SQL dans le fichier all-databases.sql vont recréer toutes vos bases de données dans MariaDB. Les bases de données existantes sur la machine cible seront intactes.

Stocker la sauvegarde de la base de données sur un service de stockage en nuage

Vous pouvez utiliser l'outil de sauvegarde Duplicati pour envoyer automatiquement les fichiers de sauvegarde de la base de données vers un stockage en nuage. Tous les fichiers seront chiffrés avant d'être envoyés vers le stockage en nuage.

  • Utiliser Duplicati pour sauvegarder des fichiers sur Debian, Ubuntu, Linux Mint

Sauvegarde automatique avec Cron

Editez le fichier crontab de root’s.

sudo crontab -e

Ajoutez la ligne suivante pour sauvegarder automatiquement la base de données tous les jours.

@daily mysqldump -u root nom_de_la_base | gzip > nom_de_la_base_`date"%Y-\\\\\\"`.sql.gz

Le signe de pourcentage (%) dans Cron est un méta-caractère, qui signifie fin de fichier. Nous devons l'échapper avec une barre oblique inverse pour utiliser sa signification littérale.

Vous pouvez également créer une tâche cron pour supprimer automatiquement les anciennes sauvegardes. Par exemple, vous pouvez supprimer toutes les sauvegardes effectuées en janvier le premier jour de mars en ajoutant la ligne suivante dans le fichier crontab, en supposant que la sauvegarde est stockée dans le répertoire /root/.

0 0 1 3 * rm /root/*Janvier*.sql.gz

Pour supprimer les sauvegardes effectuées en février le premier jour d'avril, ajoutez la ligne suivante.

0 0 1 4 * rm /root/*Feburary*.sql.gz

Obtenir de l'aide

Remarquez que l'option --opt est activée par défaut lorsque vous exécutez mysqldump. Cette option est un raccourci pour un groupe d'autres options, dont :

  • {Ajout de table de dépôt
  • {Ajouter des verrous
  • –create-options
  • –Disable-keys
  • –extended-insert
  • {Verrouillage des tables
  • {Rapide
  • –set-charset

Ainsi, lorsque vous exécutez mysqldump, toutes les options ci-dessus sont activées par défaut. Pour plus d'informations, veuillez consulter le manuel : man mysqldump.

Réduire la taille des journaux binaires

Si vous trouvez que vos fichiers journaux binaires utilisent une quantité énorme d'espace disque, vous devriez configurer MySQL/MariaDB pour purger automatiquement les journaux binaires. Ajoutez la ligne suivante dans votre fichier de configuration, qui purgera les fichiers journaux binaires de plus de 3 jours.

binlog_expire_logs_secondes = 259200

Puis redémarrez MySQL/MariaDB.

sudo systemctl restart mysql

De temps en temps, vous devez vérifier que votre sauvegarde fonctionne correctement. Dans un monde idéal, la technologie est parfaite. Mais dans la réalité, elle peut échouer pour une raison quelconque.

Utilisation de phpMyAdmin pour exporter la base de données

L'utilitaire mysqldump nécessite que l'utilisateur dispose du privilège PROCESS pour pouvoir vider les tablespaces. Parfois, un utilisateur de base de données possède une base de données mais ne dispose pas du privilège PROCESS, et ne peut donc pas utiliser mysqldump. Si phpMyAdmin est installé sur le même serveur, l'utilisateur peut exporter la base de données dans l'interface web de phpMyAdmin, sans avoir besoin du privilège PROCESS.

  • Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 20.04 LTS
  • Comment installer phpMyAdmin avec Apache (LAMP) sur Ubuntu 20.04
  • Installer phpMyAdmin avec Apache (LAMP) sur Debian 10 Buster

Connectez-vous à l'interface web de phpMyAdmin, sélectionnez votre base de données, puis allez dans l'onglet Export pour exporter la base de données.

Configuration de la réplication maître-esclave de MariaDB

Lorsque vous effectuez des sauvegardes de bases de données, cela peut interrompre la charge de travail de votre serveur MariaDB. Une bonne pratique est de mettre en place une réplication Maître-Esclave et de faire la sauvegarde sur le serveur esclave, ainsi la charge de travail du serveur maître ne sera pas interrompue.

  • Comment configurer la réplication maître-esclave de MariaDB sur Ubuntu 18.04, 20.04
Scroll to Top