Services webmasters
Partenaires
Jeux concours gratuits
 
Ajouter et retirer des données et des logs InnoDB
<<<
Sauver et restaurer une base InnoDB Transférer une base de données InnoDB vers une autre machine
>>>

7.5 Tables InnoDB
7 Types de tables MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Présentation des tables InnoDB
Options de démarrage InnoDB
Créer des bases InnoDB
Créer des tables InnoDB
Ajouter et retirer des données et des logs InnoDB
->Sauver et restaurer une base InnoDB
Transférer une base de données InnoDB vers une autre machine
Modèle transactionnel de InnoDB
Implémentation du multi-versionnage
Structures de tables et d'index
Gestion de l'espace fichiers et des entrées/sorties disque
Gestion des erreurs
Restrictions sur les tables InnoDB
Historique de l'évolution InnoDB
Informations de contact InnoDB

7.5.6 Sauver et restaurer une base InnoDB

Le secret de la gestion de bases de données sereine réside dans les sauvegardes régulières.

InnoDB Hot Backup est un outil de sauvegarde que vous pouvez utiliser pour faire des sauvegarde des bases de données InnoDB, lorsqu'elles sont utilisées. InnoDB Hot Backup ne vous impose pas de stopper le serveur, et ne pose aucun verrou ou ne perturbe votre utilisation normale des tables. InnoDB Hot Backup est un outils supplémentaire, qui n,est pas libre, et qui n'est pas inclus dans la distribution standard de MySQL. Voyez le site web de InnoDB Hot Backup http://www.innodb.com/hotbackup.php pour plus de détails et des captures d'écran.

Si vous êtes capables d'arréter votre serveur MySQL, alors pour faire une sauvegarde binaire de vos bases de données, vous devez suivre les instructions suivantes :

  • Arrêter votre serveur MySQL et assurez vous qu'il s'arrête sans erreur.
  • Copiez tous les fichiers de données dans une archive.
  • Copiez tous les fichiers d'historique de InnoDB dans une archive.
  • Copiez votre fichier de configuration my.cnf dans une archive.
  • Copiez tous les fichiers .frm de vos tables InnoDB dans une archive.
En plus de réaliser des copies des fichiers binaires tels que décrit ci-dessus, il est recommandé de réaliser des sauvegardes textuelles de vos tables avec mysqldump . La raison est qu'un fichier binaire peut être corrompu sans que vous ne vous en rendiez compte. Les tables sauvées dans un fichier texte sont stockées dans un format humainement lisible, bien plus simple qu'un fichier de base. Il est alors facile de répérer une corruption des données dans ce fichier, et comme le format de fichier est simple, il est facile de le corriger.

C'est une bonne idée de prendre des copies de vos tables en même temps que vous faites une sauvegarde binaire. Vous devez éteindre tous les clients de votre base pour obtenir un bilan cohérent de vos tables. Puis, vous pouvez faire les sauvegardes binaires, et vous aurez ainsi une sauvegarde cohérente de votre base, en deux formats.

Pour être capable de restaurer des données de votre base InnoDB jusqu'à présent, à partir des sauvegardes binaires ci-dessus, vous devez faire tourner le serveur MySQL en ayant activé le log général et l'archivage des logs. Ici, par "log général", nous considérons le mécanisme général de log de MySQL, qui est indépendant des logs InnoDB.

Pour reconstruire une table après le crash d'un serveur MySQL, la seule chose que vous devez faire est de le redémarrer. InnoDB va automatiquement vérifier les fichiers d'historiques, et effectuer une mise à jour des données. InnoDB va automatiquement annuler les transactions non validées, qui étaient en cours au moment du crash. Durant la restauration de la table, InnoDB va afficher des données comme celles-ci :


~/mysqlm/sql > mysqld
InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 13674004
InnoDB: Doing recovery: scanned up to log sequence number 0 13739520
InnoDB: Doing recovery: scanned up to log sequence number 0 13805056
InnoDB: Doing recovery: scanned up to log sequence number 0 13870592
InnoDB: Doing recovery: scanned up to log sequence number 0 13936128
...
InnoDB: Doing recovery: scanned up to log sequence number 0 20555264
InnoDB: Doing recovery: scanned up to log sequence number 0 20620800
InnoDB: Doing recovery: scanned up to log sequence number 0 20664692
InnoDB: 1 uncommitted transaction(s) which must be rolled back
InnoDB: Starting rollback of uncommitted transactions
InnoDB: Rolling back trx no 16745
InnoDB: Rolling back of trx no 16745 completed
InnoDB: Rollback of uncommitted transactions completed
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Apply batch completed
InnoDB: Started
mysqld: ready for connections
Si votre base se corrompt ou que votre disque est en panne, vous devez faire une restauration depuis une sauvegarde. En cas de corruption, vous devez trouver d'abord une sauvegarde qui n'est pas corrompue. A partir de cette sauvegarde, effectuer la restauration avec les fichiers d'historique généraux de MySQL, suivant les instructions du manuel MySQL.

Sommaire :

<< Sauver et restaurer une base InnoDB >>
Ajouter et retirer des données et des logs InnoDB Tables InnoDB Transférer une base de données InnoDB vers une autre machine
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -