Administration du serveur <<< |
Sauvegardes de base de données | Utilisation de myisamchk pour la maintenance des tables et leur recouvrement >>> |
5.6 Prévention des désastres et restauration 5 Administration du serveur Manuel de Référence MySQL 4.1 : Version Française ->Sauvegardes de base de données . Utilisation de myisamchk pour la maintenance des tables et leur recouvrement . Mettre en place un régime d'entretien de MySQL . Obtenir des informations sur une table |
5.6.1 Sauvegardes de base de données
Comme les tables MySQL sont stockées sous forme de fichiers, il est facile d'en faire une sauvegarde. Pour avoir une sauvegarde consistante, faites un LOCK TABLES sur les tables concernées suivi d'un FLUSH TABLES pour celles-ci. Voyez Syntaxe de LOCK TABLES et UNLOCK TABLES et Syntaxe de FLUSH . Vous n'avez besoin que d'un verrou en lecture; cela permet aux autre threads de continuer à effectuer des requêtes sur les tables dont vous faites la copie des fichiers dans le dossier des bases de données. FLUSH TABLE est requise pour s'assurer que toutes les pages d'index actifs soient écrits sur le disque avant de commencer la sauvegarde. Si vous voulez faire une sauvegarde d'une table avec SQL, vous pouvez utiliser SELECT INTO OUTFILE ou BACKUP TABLE . Voyez Syntaxe de SELECT et Syntaxe de BACKUP TABLE . Une autre façon de sauvegarder une base de données est d'utiliser l'utilitaire mysqldump ou le script mysqlhotcopy . Voyez mysqldump , exporter les structures de tables et les données et mysqlhotcopy , copier les bases et tables MySQL .
Si votre serveur MySQL est un esclave, quelque soit la sauvegarde que vous utilisez, lorsque vous sauvez vos données sur votre esclave, vous devez aussi sauver les fichiers master.info et relay-log.info , qui sont nécessaires pour relancer la réplication après la restauration des données de l'esclave. Si votre esclave doit traiter des commandes LOAD DATA INFILE , vous devez aussi sauver les fichiers nommés SQL_LOAD-* , qui sont dans le dossier spécifié par --slave-load-tmpdir . Ce dossier vaut par défaut la valeur de la variable tmpdir , si elle n'est pas spécifiée. L'esclave aura besoin de ces fichiers pour relancer la réplication d'une opération LOAD DATA INFILE interrompue. Si vous avez besoin de restaurer quelque chose, essayez d'abord de restaurer vos tables avec REPAIR TABLE ou myisamchk -r en premier. Cela devrait fonctionner dans 99.9% des cas. Si myisamchk ne réussi pas, essayez la procédure suivante (cela ne fonctionnera que si vous avez démarré MySQL avec --log-update , Le log binaire des mises à jour ) :
ls est utilisée pour avoir tous les fichiers de mise à jour dans le bon ordre. Vous pouvez aussi faire des sauvegardes sélectives de fichiers individuels :
Si vous utilisez un système de fichiers Veritas , vous pourrez faire :
|
<< | Sauvegardes de base de données | >> |
Administration du serveur | Prévention des désastres et restauration | Utilisation de myisamchk pour la maintenance des tables et leur recouvrement |