Prévention des désastres et restauration
<<<
Syntaxe de l'utilitaire myisamchk Options générales de myisamchk
>>>

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.1 Syntaxe de l'utilitaire myisamchk

myisamchk s'exécute avec une commande de la forme :


shell> myisamchk [options] tbl_name
Les options spécifient ce que vous voulez que myisamchk fasse. Elles sont décrites dans ce chapitre. Vous pouvez aussi obtenir une liste d'options en invoquant le programme avec myisamchk --help . Sans option, myisamchk va simplement vérifier les tables. Pour obtenir plus d'information ou pour demander à myisamchk de prendre des mesures correctives, il faut ajouter l'une des options listées ici.

tbl_name est la table que vous voulez réparer ou vérifier. Si vous exécutez myisamchk autre part que dans le dossier de données, vous devez spécifier le chemin jusqu'au fichier, car sinon, myisamchk n'aura aucune idée d'où chercher les données dans votre base. En fait, myisamchk ne se préoccupe pas du fait que le fichier que vous utilisez est dans le dossier de base ou pas : vous pouvez copier le fichier à réparer dans un autre dossier, et y faire les opérations d'entretien.

Vous pouvez spécifier plusieurs noms de tables à myisamchk si vous le voulez. Vous pouvez aussi spécifier un nom sous la forme d'un fichier d'index (avec l'option .MYI ), qui vous permettra de spécifier toutes les tables dans un dossier en utilisant le schéma *.MYI . Par exemple, si vous êtes dans le dossier de données, vous pouvez spécifier toutes les tables dans le dossier comme ceci :

shell> myisamchk *.MYI
Si vous n'êtes pas dans le dossier de données, et que vous souhaitez vérifier toutes les tables, vous devez ajouter le chemin jusqu'au dossier :

shell> myisamchk /path/to/database_dir/*.MYI
Vous pouvez même vérifier toutes les tables de toutes les bases avec le chemin suivant :

shell> myisamchk /path/to/datadir/*/*.MYI
La méthode recommandée pour vérifier rapidement toutes les tables est :

myisamchk --silent --fast /path/to/datadir/*/*.MYI
isamchk --silent /path/to/datadir/*/*.ISM
Si vous voulez vérifier toutes les tables et réparer celles qui sont corrompues, vous pouvez utiliser la ligne suivante :

myisamchk --silent --force --fast --update-state -O key_buffer=64M \
          -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
          /path/to/datadir/*/*.MYI
isamchk --silent --force -O key_buffer=64M -O sort_buffer=64M \
        -O read_buffer=1M -O write_buffer=1M /path/to/datadir/*/*.ISM
Ces commandes ci-dessus supposent que vous avez plus de 64 Mo de libres. Pour plus d'informations sur l'allocation de mémoire avec myisamchk , voyez la section Utilisation de la mémoire avec myisamchk .Notez que si vous obtenez une erreur comme celle-ci :

myisamchk: warning: 1 clients is using or hasn't closed the table properly
Cela signifie que vous essayez de vérifier une table qui a été modifiée par un autre programme (comme le serveur mysqld ) qui n'a pas encore refermé le fichier de table, ou que le fichier n'a pas été correctement refermé.Si mysqld fonctionne, vous devez forcer la fermeture correcte des fichiers de tables avec la commande FLUSH TABLES , et vous assurer que personne n'utilise les tables durant vos opérations avec myisamchk . En MySQL version 3.23, la meilleure méthode pour éviter ce problème est d'utiliser la commande CHECK TABLE au lieu de myisamchk pour vérifier les tables.

<< Syntaxe de l'utilitaire myisamchk >>
Prévention des désastres et restauration Utilisation de myisamchk pour la maintenance des tables et leur recouvrement Options générales de myisamchk