Comment vérifier la cohérence d'une table <<< |
Comment réparer des tables | Optimisation de 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.9 Comment réparer des tables
Dans la section présente, nous allons uniquement parler de l'utilitaire myisamchk sur les tables MyISAM (extensions .MYI et .MYD ). Si vous utilisez les tables ISAM (extensions .ISM et .ISD ), vous devriez vous servir de isamchk à la place. Depuis MySQL version 3.23.14, vous pouvez réparer les tables MyISAM avec la commande SQL REPAIR TABLE . Syntaxe de REPAIR TABLE .Les symptômes de corruption de tables sont des requêtes qui s'interrompent inopinément :
Le processus de réparation se déroule en 4 étapes décrites ici. Avant de vous lancer, vous devriez vous placer dans le dossier de données et vérifier les permissions des fichiers de données. Assurez-vous qu'ils sont bien lisibles par l'utilisateur Unix que MySQL utilise (et à vous aussi, car vous aurez besoin d'accéder à ces fichiers durant la vérification. Si vous devez corriger ces fichiers, vous aurez aussi besoin des droits d'écriture. Si vous utilisez MySQL version 3.23.16 et plus récent, vous pouvez (et vous devriez) utiliser les commandes CHECK et REPAIR pour réparer vos tables MyISAM . Voyez Syntaxe de CHECK TABLE et Syntaxe de REPAIR TABLE .La section du manuel sur l'entretien des tables inclut la présentation des options des utilitaires isamchk / myisamchk : Utilisation de myisamchk pour maintenir les tables et recouvrir les données . La section suivante est destinée aux cas où les commandes ci-dessus ont échoué ou que vous voulez exploiter les fonctionnalités avancées que isamchk / myisamchk proposent.Si vous allez réparer une table en ligne de commande, il est recommandé d'arrêter le serveur mysqld . Notez que lorsque vous exécutez une commande mysqladmin shutdown sur un serveur distant, le serveur mysqld sera encore opérationnel pendant un instant après que mysqladmin ait terminé, jusqu'à ce que toutes les requêtes et toutes les clés aient été écrites sur le disque. Etape 1 : Vérifier vos tablesExécutez la commande myisamchk *.MYI ou myisamchk -e *.MYI si vous avez plus de temps. Utilisez -s (silencieux) pour supprimer les informations peu pertinentes. Si le serveur mysqld a terminé, vous devriez utiliser l'option --update pour indiquer à myisamchk d'enregistrer la vérification des tables ('checked').Vous n'aurez à réparer que les tables pour lesquelles myisamchk vous annonce une erreur. Pour de telles tables, passez à l'étape 2. Si vous obtenez des erreurs étranges lors de la vérification, (comme, l'erreur out of memory ), ou si myisamchk crashe, passez à l'étape 3.Etape 2 : réparation simple et facile Note : Si vous voulez réparer très rapidement, vous devriez ajouter -O sort_buffer=# -O key_buffer=# (où # vaut environ le quart de la mémoire du serveur), à toutes les commandes isamchk/myisamchk .Premièrement, essayez myisamchk -r -q tbl_name ( -r -q signifie ``mode de réparation rapide''). Cette commande va tenter de réparer le fichier d'index sans toucher au fichier de données. Si le fichier de données contient toutess les données qu'il est sensé contenir, et que les points d'ancrage pour les effacements sont corrects, cette commande doit réussir, et la table sera alors réparée. Passez alors à la table suivante. Sinon, suivez la procédure suivante :
Si vous obtenez des erreurs étranges lors de la répaaration (comme des erreurs de type out of memory ), ou si myisamchk crashe, passez à l'étape 3. Etape 3 : Réparations difficilesNous ne devriez atteindre cette étape que si les 16 premiers ko du fichier d'index sont détruits, ou qu'il contient des données erronées, ou si le fichier d'index manque. Dans ce cas, il est nécessaire de créer un nouveau fichier d'index. Faites ceci :
Depuis MySQL 4.0.2, vous pouvez aussi utiliser REPAIR ... USE_FRM qui effectue toute cette opération automatiquement. Etape 4 : Réparation très difficilesVous ne devriez atteindre cette étape que si votre fichier de description .frm a aussi crashé. Cela ne devrait jamais arriver, car le fichier de description n'est jamais modifié une fois que la table est créée.
|
<< | Comment réparer des tables | >> |
Comment vérifier la cohérence d'une table | Utilisation de myisamchk pour la maintenance des tables et leur recouvrement | Optimisation de table |