Supposons maintenant qu'un crash catastrophique survienne le mercredi à 8 heures du matin, et qu'il faille utiliser les sauvegardes pour restaurer la base de données. Pour cela, il faut commencer par utiliser la première sauvegarde complète que nous avons : c'est celle de samedi, à 1 heure. Cette sauvegarde est un ensemble de commandes SQL : la restauration est très simple :
shell> mysql < backup_sunday_1_PM.sql
Après cela, les données sont celles que nous avions
dimanche, à 1 heure. Pour appliquer les modifications qui ont
eu lieu depuis cette date, nous devons utiliser les
sauvegardes incrémentales, c'est à dire les fichiers de log
binaire gbichot2-bin.000007
et
gbichot2-bin.000008
. Retrouvez-les dans
vos documents de sauvegarde, puis, exécutez-les de cette
manière :
shell> mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql
Nous avons maintenant retrouvé les données dans leur état
de mardi, à 1 heure, mais il manque encore les données entre
cette date et le crash. Pour ne pas les avoir perdu, il faut
que les logs aient été sauvés dans un volume sécurisé
(disque RAID, SAN, ...), sur un serveur différent de celui
qui a crashé : tout cela pour que le serveur n'ait pas
détruit les logs durant le crash. Pour cela, nous pouvons
lancer le serveur avec l'option --log-bin
, et
spécifier un chemin sur un volume physique séparé. De cette
manière, les logs ne seront pas perdus, même si le dossier
contenant les données est perdu. Si nous pouvons retrouver
ces fichiers de log, nous aurons un fichier appelé
gbichot2-bin.000009
et nous pouvons
l'appliquer aux données pour obtenir l'état le plus proche
du moment du crash.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.