Utilisation de la mémoire par myisamchk <<< |
Utiliser myisamchk pour restaurer une table | Comment vérifier la cohérence d'une table >>> |
5.6.2 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 . Syntaxe de l'utilitaire myisamchk . Options générales de myisamchk . Options de vérifications pour myisamchk . Options de réparation de myisamchk . Autres options de myisamchk . Utilisation de la mémoire par myisamchk ->Utiliser myisamchk pour restaurer une table . Comment vérifier la cohérence d'une table . Comment réparer des tables . Optimisation de table |
5.6.2.7 Utiliser myisamchk pour restaurer une table
Si vous utilisez mysqld avec l'option --skip-external-locking (qui est la configuration par défaut pour certains systèmes, comme Linux), vous ne pouvez pas utiliser myisamchk pour vérifier une table, lorsque mysqld utilise aussi la table. Si vous pouvez être sûr que personne n'utilise cette table via mysqld lorsque vous utilisez myisamchk , vous n'aurez qu'à utiliser la commande mysqladmin flush-tables avant de commencer à vérifier les tables. Si vous ne pouvez pas garantir cette condition, vous devez alors éteindre le serveur mysqld pour vérifier les tables. Si vous exécutez myisamchk alors que mysqld modifie la table, vous pourriez obtenir un diagnostic de corruption de la table, alors que ce n'est pas le cas. Si vous n'utilisez pas l'option --skip-external-locking , vous pouvez vous servir de myisamchk pour vérifier les tables à tout moment. Pendant que vous le faites, les autres clients qui tentent de modifier la table devront attendre que myisamchk ait fini. Si vous utilisez myisamchk pour réparer ou optimiser les tables, vous devez toujours vous assurer que mysqld n'utilise pas cette table (ce qui s'applique aussi si vous utilisez --skip-external-locking ). Si vous n'éteignez pas le serveur mysqld , vous devez au moins utiliser mysqladmin flush-tables avant de lancer myisamchk . Vos tables peuvent être corrompues si le serveur et myisamchk travaillent dans une même table simultanément.Ce chapitre décrit comment vérifier et gérer les corruptions de données dans les bases MySQL. Si vos tables sont fréquemment corrompues, vous devriez commencer par en rechercher la raison ! Que faire si MySQL crashe constamment . La section sur les tables MyISAM contient différentes raisons pour lesquelles une table peut être corrompue. Problèmes avec les tables MyISAM .Lorsque vous effectuez une restauration de table, il est important que chaque table tbl_name dans une base corresponde aux trois fichiers dans le dossier de base, du dossier de données :
Chacun de ces trois fichiers est sujet à des corruptions diverses, mais les problèmes surviennent généralement dans les fichiers de données ou d'index. myisamchk fonctionne en créant une copie du fichier .MYD (les données), ligne par ligne. Il termine sa réparation en supprimant l'ancien fichier .MYD et en renommant le nouveau à la place de l'ancien. Si vous utilisez l'option --quick , myisamchk ne crée pas de fichier temporaire .MYD mais suppose plutôt que le fichier .MYD est correct et il génère simplement un nouveau fichier d'index sans toucher au fichier .MYD . C'est une méthode sécuritaire, car myisamchk va automatiquement détecter si le fichier .MYD est corrompu, et annulera alors la réparation si c'est le cas. Vous pouvez aussi ajouter deux options --quick à myisamchk . Dans ce cas, myisamchk ne s'interrompt pas sur certaines erreurs (comme des clés doublons), et essaie de résoudre ce problème en modifiant le fichier .MYD . Normalement, l'utilisation de deux options --quick n'est utile que si vous n'avez pas trop d'espace disque pour réaliser la réparation. Dans ce cas, vous devez au moins faire une copie de sauvegarde avant d'utiliser myisamchk . |
<< | Utiliser myisamchk pour restaurer une table | >> |
Utilisation de la mémoire par myisamchk | Utilisation de myisamchk pour la maintenance des tables et leur recouvrement | Comment vérifier la cohérence d'une table |