GNU/Linux >> Tutoriels Linux >  >> Linux

Comment planifier une sauvegarde de base de données MySQL sur Ubuntu

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.


Linux
  1. Comment copier une base de données MySQL

  2. MySQL :comment sauvegarder (vider) et restaurer une base de données à l'aide de mysqldump

  3. Comment créer une sauvegarde des bases de données MySQL à l'aide de mysqldump sur Ubuntu 20.04

  4. Comment installer la base de données MySQL sur Ubuntu 20.04

  5. Comment installer MySQL sur Ubuntu 22.04

Comment restaurer une base de données MySQL à partir d'une sauvegarde .SQL

Comment créer une base de données dans MySQL

Comment sauvegarder une base de données MySQL dans cPanel

Comment installer MySQL 8.0 sur Ubuntu 18.04

Comment installer phpMyAdmin sur Ubuntu 18.04

Comment planifier des sauvegardes de fichiers sur Google Drive sur Ubuntu