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