Sauvegarder/Restaurer une base MySQL

Transcription

Sauvegarder/Restaurer une base MySQL
BTS SIO
Option SLAM/SISR
Sauvegarder/Restaurer
une base MySQL
1.
Création de la base de travail (mode console)
1.
Lancez le couple Xampp Apache/MySQL et connectez-vous sur le SGBD en mode console avec l'utilisateur
ROOT.
2.
Positionné sur aucune base de données, créez une base nommé bd_pays et vérifiez sa création en listant les
bases présentes dans le SGBD.
3.
Quel autre moyen pouvez-vous utiliser pour vérifier la création de votre base bd_pays ?
4.
Recopier sur votre unité disque le script pays.SQL et observez-le. Quel est son rôle ?
5.
Exécuter le script avec l'instruction SOURCE chemin\nom_script et vérifiez qu'il s'est bien exécuté.
2.
Sauvegarde de la base
2.1. En mode graphique
Solution 1 : Duplication de base
La solution la plus simple pour sauvegarder une base de données est de créer un double de celle-ci.
6.
Sous PhpMyAdmin, positionné sur votre base de données bd_pays, choisissez "Copier la base" dans l'onglet
Opérations.
7.
Donnez le nom d'une nouvelle base et exécutez la copie. Que constatez-vous ?
8.
Qui est propriétaire de cette nouvelle base ?
Mme Nunes
1/5
BTS SIO
Option SLAM/SISR
Solution 2 : Export de votre base
Une base de données peut-être aussi être créée à partir d'un script SQL (ce que vous avez d'ailleurs fait en
partie 1 ! ). Pour cela, il faut un script complet comprenant en plus de la création des tables, la création des clés
étrangères et parfois, les ordres de création de la base et d'insertion des données. Vous allez donc générer le
script SQL de votre base bd_pays.
9.
Sous PhpMyAdmin, positionné sur aucune base de données, choisissez une exportation personnalisée dans
l'onglet Exporter.
10. Sélectionnez la base bd_pays, l'affichage des résultats et des relations de clés étrangères. Le reste des
options étant bien positionné par défaut, générez le script.
11. Comparez avec le script fourni pour le TP.
Solution 3 : Création du schéma
Parfois une base de données peut-être créée à partir d'un schéma papier. Vous allez donc générer le schéma
relationnel de votre base bd_pays.
12. Sous PhpMyAdmin, positionné sur votre base de données bd_pays, choisissez "Editer ou exporter le
schéma relationnel" dans l'onglet Opérations.
 Quelle différence faites-vous entre les relations internes et les clés étrangères ?
13. Lancez la génération du schéma et enregistrez-la sur votre unité réseau. Qu'obtenez-vous ?
Mme Nunes
2/5
BTS SIO
Option SLAM/SISR
Solution 4 : Sauvegarde partielle
Dans certains cas, il peut être nécessaire de sauvegarder une table à la fois plutôt que toute une base. Pour cela
il y a 2 manières de procéder.
Manière n°1 : Génération d'un script partiel de création de table
14. Sous PhpMyAdmin, positionné sur votre base de données bd_pays, choisissez une exportation
personnalisée dans l'onglet Exporter.
15. Sélectionnez la table pays, l'affichage des résultats et des relations de clés étrangères. Le reste des options
étant bien positionné par défaut, générez le script.
Manière n°2 : Création d'une table à partir d'une autre table
16. Sous PhpMyAdmin, positionné sur votre base de données bd_pays, sous l'onglet Opérations, choisissez
l'encart "Copier la table vers …" et dupliquez la table pays en pays2.
17. Sous l'onglet SQL, écrivez la requête SQL permettant de créer une table vide, nommée pays3, de structure
identique à la table pays.
18. Ecrivez la requête SQL permettant d'insérer dans pays3 l'ensemble des enregistrements contenus dans pays.
19. Ecrivez maintenant la requête SQL permettant de créer un table pays4, identique à la table pays, et, en
même temps, d'y insérer toutes ses données.
2.2. En mode console
Pour sauvegarder des bases de données en mode console, il existe l'utilitaire MySQLdump qui permet
d'exporter une base ou un groupe de bases vers un fichier texte, pour la sauvegarde ou le transfert entre 2
serveurs (pas nécessairement entre serveurs MySQL). L'export contiendra les requêtes SQL nécessaires pour
créer la table et la remplir.
Un des avantages de mysqldump réside dans la possibilité de transférer les données sur un autre type de serveur
car le fichier généré par mysqldump ne contient que des ordres SQL et d'effectuer des sauvegardes distantes,
c'est à dire, sauvegarder une base (située sur un serveur) à partir d'une autre machine.
Mme Nunes
3/5
BTS SIO
Option SLAM/SISR
20. Ouvrez une nouvelle fenêtre avec l'interpréteur de commande CMD.exe et placez-vous sur le répertoire BIN
de MySQL de votre répertoire XAMPP
21. Générez les ordres SQL de création et d'insertion de votre base bd_pays avec l'instruction suivante :
mysqldump -u nom_utilisateur --opt nom_base
L'option --opt impose la sauvegarde de toutes les tables de la base (en les ayant verrouillées au préalable pour
empêcher toute modification pendant la sauvegarde). Elle ajoute également les ordres de création de tables et
d'insertions complètes des données contenues.
Remarque: si ne fonctionne pas faire mysqldump -u nom_utilisateur -p nom_base
22. Observez les ordres SQL générés. Permettent-ils de dupliquer totalement votre base ?
Il est possible de préciser une table en particulier à sauvegarder avec le paramètre –-tables nom_table et aussi
d'affecter une clause de restriction sur les lignes sélectionnées avec le paramètre –-where "critère de restiction".
23. Faites un dump de la table pays uniquement.
24. Complétez votre ordre mysqldump en sauvegardant uniquement les lignes de la table pays dont l'identifiant
est inférieur à 10
Les ordres sont été créés à l'écran ce qui n'est pas très pratique pour les récupérer. Vous pouvez demander une
redirection vers un fichier SQL en sortie en ajoutant les éléments suivant à votre ordre mysqldump :
> Nom_fichier.sql
25. Faites un dump complet de votre base dans un fichier SQL qui sera enregistré dans votre unité réseau.
Vérifiez le fichier généré.
26. Cette fois, faites un dump de votre base dans un fichier XML enregistré dans votre unité réseau, le format
XML étant obtenu en ajoutant l'option --xml. Vérifiez sous un navigateur que le fichier est bien lisible.
27. Testez l'instruction ci-dessous et déterminez ce qu'elle permet d'obtenir.
3.
Restauration de la base
3.1. En mode graphique
28. Sous PhpMyAdmin, positionné sur votre base de données bd_pays, supprimez votre table pays.
29. Dans l'onglet "Importer", restaurez-la par appel de votre script SQL de sauvegarde créé précédemment.
Vérifiez l'import.
Mme Nunes
4/5
BTS SIO
Option SLAM/SISR
3.1. En mode console
Pour restaurer des bases de données en mode console, il existe 2 manières de procéder :
Manière n° 1 : Restauration des données uniquement.
L'utilitaire MySQLImport permet de restaurer les données d'une table à partir d'un fichier contenant des
données au format texte tel que :
mysqlimport -u nom_utilisateur nom_base chemin\Fichier_de_données.TXT
NB : le nom du fichier contenant les données doit posséder le même nom que la table de destination. L'extension
du fichier n'est pas d'importance, seul le format des données compte.
30. Connectez-vous sur le SGBD en mode console avec l'utilisateur ROOT et supprimez les enregistrements de
la table pays.
31. Sous l'interpréteur de commande CMD, répertoire BIN de MySQL, restaurer les enregistrements de la table
pays à partir du fichier TXT crée précédemment.
Manière n° 2 : Restauration des tables d'une base de données.
Pour restaurer les tables d'une base de données en mode console, on utilise l'interpréteur de commande MySQL
et le script SQL en entrée tel que :
mysql –u nom_utilisateur nom_base < chemin\script.SQL
32. Connectez-vous sur le SGBD en mode console avec l'utilisateur ROOT et supprimez la table pays.
33. Sous l'interpréteur de commande CMD, restaurer les enregistrements de la table pays à partir du script SQL
complet précédemment crée. Vérifiez.
Mme Nunes
5/5

Documents pareils