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 :
|