Effectuer des sauvegardes régulières est une procédure essentielle pour tout type de données. Ce tutoriel vous aidera à découvrir certains des outils les plus utilisés pour sauvegarder et restaurer votre base de données MySQL.
Vous devrez d'abord vous connecter à votre serveur via une connexion SSH. Si vous ne l'avez pas déjà fait, nous vous recommandons de suivre notre guide pour vous connecter en toute sécurité avec SSH. En cas de serveur local, vous pouvez passer au point suivant et ouvrir le terminal de votre serveur.
Utiliser mysqldump
Mysqldump est une application toujours disponible dans chaque installation MySQL et vous permet d'effectuer un vidage complet de vos données au format texte.
La syntaxe de la commande est la suivante :
$ mysqldump -u [username] -p [database] > backup.sql
En exécutant cette commande, vous trouverez une sauvegarde complète de la base de données indiquée dans le fichier backup.sql.
Pour restaurer la sauvegarde, utilisez le client MySQL comme suit :
$ mysql -u [username] -p [database] < backup.sql
Selon la taille de la base de données, ces fichiers de sauvegarde peuvent atteindre des tailles importantes, rendant difficile leur transfert ou leur copie. Pour optimiser la taille de la sauvegarde de la base de données, vous pouvez utiliser gzip pour compresser le fichier :
$ mysqldump -u [username] -p [database] | gzip > backup.sql.gz
Si vous le souhaitez, vous pouvez également ajouter automatiquement la date actuelle dans le nom du fichier en utilisant :
$ mysqldump -u [username] -p [database] | gzip > backup_$(date +%F.%H%M%S).sql.gz
Pour restaurer, utilisez plutôt la syntaxe suivante :
$ mysql -u [username] -p [database] < backup.sql
Remarques sur mysqldump :
Il est bon de garder à l'esprit que lors du dump et de la sauvegarde d'une base de données, mysqldump ne garantit pas la cohérence des données entre les tables. Si des opérations d'écriture interviennent lors de la sauvegarde, la sauvegarde obtenue peut être partielle et/ou corrompue.
Pour éviter ce problème, il existe des options spécifiques fournies par l'application :
--lock-all-tables :bloque toutes les opérations d'écriture sur toutes les tables de toutes les bases de données
- lock-tables :cette option définit à la place la table de la base de données en cours de sauvegarde en mode lecture seule.
Les options à choisir dépendent du fait que vous ayez ou non des données liées à plusieurs bases de données. Dans la plupart des cas, --lock-tables est la solution idéale pour garantir l'intégrité des données pour chaque base de données individuelle.
Automatiser mysqldump via crontab
Pour rendre la sauvegarde périodique, il suffit de l'ajouter à la crontab du système en programmant, par exemple, une fois par jour. Commencez par ouvrir la crontab en lançant :
$ sudo crontab -e
Ajoutez maintenant une ligne à la fin du fichier comme suit :
00 23 * * * mysqldump -u [username] -p [database] | gzip > /home/utente/backup.sql.gz
En enregistrant le fichier, le système effectuera une sauvegarde par jour (à 23h00) dans votre répertoire utilisateur, en écrasant la sauvegarde précédente chaque jour.
Utiliser automysqlbackup
En plus d'utiliser mysqldump en exportant manuellement les sauvegardes, vous pouvez compter sur l'un des utilitaires les plus populaires du secteur :automysqlbackup.
Vous devez d'abord installer le package via apt-get :
$ sudo apt-get install automysqlbackup
Une fois l'installation terminée, automysqlbackup effectuera des sauvegardes quotidiennes dans le répertoire /var/lib/automysqlbackup. Vous pouvez également démarrer manuellement une sauvegarde en lançant :
$ sudo automysqlbackup
Une fois terminé, vous pouvez vérifier les sauvegardes présentes simplement en listant le contenu du répertoire :
$ ls -R /var/lib/automysqlbackup/
/var/lib/automysqlbackup/:
daily monthly weekly
/var/lib/automysqlbackup/daily:
exampledb information_schema performance_schema test wordpress
/var/lib/automysqlbackup/daily/exampledb:
exampledb_2019-08-03_06h48m.Sunday.sql.gz
...
Si tout a fonctionné correctement, vous remarquerez une série de fichiers avec des extensions .sql.gz comme indiqué ci-dessus.
Nous vous conseillons de vérifier périodiquement les dernières sauvegardes effectuées et de vérifier qu'elles fonctionnent toutes correctement.
Personnalisation d'automysqlbackup
Pour modifier la fréquence de sauvegarde d'automysqlbackup ou les données d'accès nécessaires pour accéder à votre base de données, vous pouvez modifier le fichier de configuration dans /etc/default/automysqlbackup.
Certains des paramètres sont :
USERNAME :nom d'utilisateur utilisé pour se connecter à la base de données
MOT DE PASSE :mot de passe de la base de données
DBHOST :adresse IP ou nom d'hôte
DBNAMES :noms des bases de données à sauvegarder
BACKUPDIR :Répertoire pour enregistrer les sauvegardes
Après avoir modifié les paramètres souhaités, enregistrez le fichier pour appliquer les modifications.