Aller au contenu principal

Sauvegarder / restaurer

Notions théoriques

Dans cette séance, nous allons apprendre comment sauvegarder une base de données MariaDB. La sauvegarde est un aspect crucial de la gestion des bases de données. En cas de perte de données, d'erreur de manipulation ou de panne de système, une sauvegarde récente de votre base de données peut vous permettre de récupérer rapidement vos données.

MariaDB offre plusieurs méthodes pour sauvegarder une base de données, mais l'une des plus couramment utilisées est la commande mysqldump. Cette commande crée une "image" de la base de données qui peut être utilisée pour restaurer la base de données à son état au moment de la sauvegarde.

La syntaxe de base de la commande mysqldump est la suivante :

mysqldump -u [utilisateur] -p[password] [nom_de_la_base_de_donnees] > [nom_du_fichier_de_sauvegarde].sql

Pour restaurer une base de données, on utilise la commande mysql.

La syntaxe de base de la commande mysql, pour restaurer, est la suivante :

mysql -u [utilisateur] -p[password] [nom_de_la_base_de_donnees] < [nom_du_fichier_de_sauvegarde].sql

Exemple pratique

  • Pour sauvegarder notre base de données ecole, on peut utiliser la commande suivante :

    mysqldump -u etudiant -p1mot2Passe+QueTresSécurisé ecole > ecole_backup.sql
  • Pour restaurer la base de données ecole, on peut utiliser la commande suivante :

    mysql -u etudiant -p1mot2Passe+QueTresSécurisé ecole < ecole_backup.sql

Cette commande crée un fichier ecole_backup.sql qui contient toutes les instructions SQL nécessaires pour recréer la base de données ecole dans son état actuel.

Test de mémorisation/compréhension


Quelle est l'utilité de la commande mysqldump ?


Quel est le rôle du paramètre -p dans la commande mysqldump ?


Quelle commande utiliseriez-vous pour sauvegarder la base de données 'ecole' avec l'utilisateur 'etudiant' et le mot de passe 'password' ?


Quelle commande utiliseriez-vous pour restaurer la base de données 'ecole' à partir d'une sauvegarde 'ecole_backup.sql' avec l'utilisateur 'etudiant' et le mot de passe 'password' ?


TP simple

Mission

Il vous est demander de sauvegarder la base de données ecole et de la restaurer dans une nouvelle base de données ecole_backup.

Etapes

  1. Connectez-vous à MariaDB en utilisant l'utilisateur root.
  2. Créez une nouvelle base de données appelée ecole_backup.
  3. Donnez tous les droits (permissions) à l'utilisateur etudiant sur la base de données ecole_backup.
  4. Déconnectez l'utilisateur root de MariaDB
  5. Sauvegardez la base de données ecole dans un fichier appelé ecole_backup.sql en utilisant l'utilisateur etudiant et le mot de passe 1mot2Passe+QueTresSécurisé.
  6. Restaurez la sauvegarde de la base de données ecole dans la base de données ecole_backup.
  7. Vérifiez que toutes les données de la base de données ecole ont été correctement restaurées dans la base de données ecole_backup.
info

Pour rappel, le mot de passe de l'utilisateur etudiant est : 1mot2Passe+QueTresSécurisé

Une solution

remarque

Avez-vous jeter un oeil au contenu du fichier qui contient la sauvegarde ?

nano ecole_backup.sql

Quelles sont les commandes SQL utilisées dans ce fichier ?

TP avancé

Automatisation de la sauvegarde avec une tâche Cron

  1. Connectez-vous à MariaDB en utilisant l'utilisateur root.
  2. Créez une nouvelle base de données appelée ecole_backup_auto.
  3. Donnez tous les droits (permissions) à l'utilisateur etudiant sur la base de données ecole_backup_auto. exit
  4. Déconnectez l'utilisateur root de MariaDB
  5. Connectez-vous à MariaDB en utilisant l'utilisateur etudiant et le mot de passe 1mot2Passe+QueTresSécurisé.
  6. Créez une nouvelle table etudiants dans la base de données ecole_backup_auto avec les champs suivants :
    • id (entier, clé primaire, auto-incrément),
    • nom (chaîne de caractères),
    • prenom (chaîne de caractères),
    • age (entier).
  7. Ajoutez un nouvel enregistrement dans la table etudiants avec les valeurs de votre choix pour nom, prenom et age.
  8. Déconnectez l'utilisateur etudiant de MariaDB
  9. Créez un script bash appelé backup_ecole_auto.sh qui sauvegarde la base de données ecole_backup_auto dans un fichier appelé ecole_backup_auto.sql.

    RAPPEL : La première ligne du fichier backup_ecole_auto.sh doit être #!/bin/bash.

  10. Rendez ce script exécutable.
  11. Créez une tâche Cron pour exécuter ce script dans 5 minutes.
  12. Vérifiez que la tâche Cron a été correctement exécutée, en vérifiant l'heure du fichier ecole_backup_auto.sql :
    ls -la /home/sio/backup/ecole_backup_auto.sql
  13. Modifiez une tâche Cron pour exécuter ce script tous les jours à 3 heures du matin.
  14. Vérifiez que la tâche Cron a été correctement configurée, avec la commande :
    crontab -l
Une solution