Services webmasters
Partenaires
Jeux concours gratuits
 
Syntaxe de RESTORE TABLE
<<<
Syntaxe de CHECK TABLE Syntaxe de REPAIR TABLE
>>>

4.4 Prévention des désastres et restauration
4 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

Sauvegardes de base de données
Syntaxe de BACKUP TABLE
Syntaxe de RESTORE TABLE
->Syntaxe de CHECK TABLE
Syntaxe de REPAIR TABLE
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

4.4.4 Syntaxe de CHECK TABLE


CHECK TABLE tbl_name[,tbl_name...] [option [option...]]

option = QUICK | FAST | MEDIUM | EXTENDED | CHANGED
CHECK TABLE ne fonctionne qu'avec les tables MyISAM et InnoDB . Avec les tables MyISAM , c'est l'équivalent de la commande myisamchk -m table_name sur la table.Par défaut, l'option MEDIUM est utilisée.

Cette commande vérifie l'intégrité des tables. Pour les tables MyISAM , des statistiques importantes sont mises à jour. La commande retourne les infomrations suivantes sur la table dans les colonnes suivantes :

Colonne Valeur
Table Nom de la table.
Op Toujours ``check''.
Msg_type Un des statut status , error , info ou warning .
Msg_text Le message.

Notez que vous pouvez obtenir de nombreuses lignes d'informations pour chaque table. La dernière ligne sera du type Msg_type status et doit être normalement OK . Si vous n'obtenez pas de statut OK ou Not checked , il vous faudra exécuter une réparation de la table. Utilisation de myisamchk pour maintenir les tables et recouvrir les données . Not checked signifie que la table a indiqué qu'il n'y a pas de vérification à faire.

Les différents types de vérifications sont les suivants :
Type Signification
QUICK N'analyse pas les lignes pour vérifier les liens erronés.
FAST Ne vérifie que les tables qui n'ont pas été correctement fermées.
CHANGED Ne vérifie que les tables qui ont changées depuis la dernière vérification, ou bien qui n'ont pas été correctement fermées.
MEDIUM Analyse les lignes pour s'assurer que les liens effacés sont corrects. Cette option calcule aussi la somme de contrôle des lignes, et la vérifie avec la somme de contrôle des clés.
EXTENDED Fait une vérification complète des liens pour chaque ligne. Cela vérifie que la table est totalement cohérente, mais cela peut prendre beaucoup de temps.
Pour les tables à format de dynamique de type MyISAM , une vérifiation de table sera toujours démarrée avec une option de niveau MEDIUM . Pour les tables à format de ligne statique, nous évitons les niveaux de QUICK et FAST car les lignes sont rarement corrompues.

Vous pouvez combiner les options de vérification comme ceci :


CHECK TABLE test_table FAST QUICK;
L'exemple ci-dessus va simplement faire une vérification de la table, pour s'assurer qu'elle a été correctement fermée.

Note : dans certains cas, CHECK TABLE va modifier la table! Cela arrive si la table a été marquée comme 'corrupted' et 'not closed properly' mais CHECK TABLE n'a trouvé aucun problème dans la table. Dans ce cas, CHECK TABLE va marquer la table comme correcte.

Si une table est corrompue, il est probable que les problèmes sont dans les fichiers d'index et non pas dans les données. Tous les types de vérifications présentés ci-dessus vérifient les index soigneusement, et ils devraient trouver la plupart des erreurs.

Si vous voulez simplement vérifier une table que vous supposez correcte, vous pouvez n'utiliser aucune option, ou l'option QUICK . Cette dernière peut aussi être utilisée si vous êtes pressé, et que vous pouvez prendre le risque minime que QUICK ne trouve pas d'erreur dans votre fichier. Dans la plupart des cas, MySQL doit trouver toutes les erreurs de données, pour un usage normal. Si cela arrive, alors la table est marquée comme 'corrupted', auquel cas, la table ne pourra pas être utilisée tant qu'elle n'a pas été réparée).

FAST et CHANGED sont surtout destinées à être utilisées depuis un script : par exemple, il peut être exécuté depuis une tâche cron , si vous voulez vérifier la table de temps en temps. Dans la plupart des cas, l'option FAST doit être préférée à CHANGED : le seul cas ou vous pourriez préferez CHANGED est lorsque vous soupsonnez avoir trouvé un bogue dans les tables MyISAM .

EXTENDED ne doit être utilisé qu'après une vérification normale, et que vous obtenez toujours des erreurs étranges lorsque MySQL essaie de modifier une ligne ou trouve une ligne avec clé (ce qui est très rare, si une vérification a réussie).

Certains problèmes rapportés par la commande CHECK TABLE , ne peuvent être corrigés automatiquement :
  • Found row where the auto_increment column has the value 0 .Cela signifie que vous avez dans votre table une ligne qui contient la valeur 0 alors qu'elle est de type AUTO_INCREMENT . (Il est possible de créer une ligne où la colonne AUTO_INCREMENT vaut 0 en spécifiant explicitement la valeur 0 dans la colonne avec la commande UPDATE .

    Ce n'est pas une erreur en soit, mais cela peut poser des problèmes si vous décidez de sauver cette table dans un fichier texte, et de la restaurer, ou encore d'appliquer la commande ALTER TABLE sur la table. Dans ce cas, la colonne AUTO_INCREMENT va changer automatiquement de valeur, en suivant les règles des colonnes de type AUTO_INCREMENT , qui vont causer un problème de clé doublon.

    Pour se débarasser de cette alerte, vous devez utiliser une commande UPDATE surla table, pour mettre une valeur différente de 0 dans cette colonne.

<< Syntaxe de CHECK TABLE >>
Syntaxe de RESTORE TABLE Prévention des désastres et restauration Syntaxe de REPAIR TABLE
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -