Services webmasters
Partenaires
Jeux concours gratuits
 
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 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.7 Mettre en place un régime d'entretien de MySQL

Depuis MySQL version 3.23.13, vous pouvez vérifier les tables de type MyISAM avec la commande CHECK TABLE . Syntaxe de CHECK TABLE . Vous pouvez aussi réparer les tables avec la commande REPAIR TABLE . Syntaxe de REPAIR TABLE .

C'est une bonne idée que d'effectuer des vérifications des tables régulièrement, plutôt que d'attendre qu'un problème survienne. Pour faire ces vérifications, vous pouvez utiliser la commande myisamchk -s . L'option -s (raccourci pour --silent ) fait que myisamchk s'exécute en mode silencieux, et n'affiche que les messages d'erreurs.

C'est aussi une bonne idée que de vérifier les tables lorsque le serveur démarre. Par exemple, à chaque fois qu'une machine redémarre au milieu d'une modification de table, vous devrez faire une vérification de toutes les tables qui pourraient être affectées : c'est une ``table supposéement corrompue''. Vous pouvez ajouter un test à safe_mysqld pour qu'il exécute myisamchk , afin de vérifier toutes les tables qui ont été modifiées dans les 24 dernières heures, si il reste un vieux fichier .pid (identifiant de processus) après un redémarrage : le fichier .pid est créé par le serveur mysqld lorsqu'il démarre, et il est supprimé lorsque le serveur s'arrête dans des conditions normales. La présence d'un fichier .pid au démarrage indique que le serveur s'est arrêté anormalement.

Un test encore meilleur serait de vérifier toutes les tables dont la date de modification est plus récente que celle du fichier .pid .

Vous devriez aussi vérifiez vos tables régulièrement durant les opérations normales. Chez MySQL AB, nous utilisons une tâche en cron pour vérifier toutes nos tables importantes au moins une fois par semaine, avec une ligne comme celle-ci dans le fichier crontab :


35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI
Cela nous affiche les informations sur les tables qui ont été corrompues, de façon à ce que nous puissions les examiner et les réparer.

Comme nous n'avons jamais eu de table qui se soit corrompue inopinément (des tables qui se corrompent pour d'autres raisons que des problèmes matériels) depuis quelques années (ce qui est véridique), une fois par semaine est un bon rythme pour nous.

Nous recommandons que vous commenciez par exécuter la commande myisamchk -s chaque nuit, sur toutes les tables qui ont été modifiées dans les 24 dernières heures, jusqu'à ce que vous preniez confiance en MySQL.

Normalement, vous n'avez pas à maintenir autant les tables MySQL. Si vous changez les tables avec un format de ligne dynamique (les tables avec des colonnes VARCHAR , BLOB ou TEXT ) ou que vous avez des tables avec de nombreuses lignes effacées, vous pouvez envisager de faire des défragmentations du fichier, pour récupérer cet espace. Une fois par mois est un bon rythme.

Vous pouvez faire cela avec la commande SQL OPTIMIZE TABLE sur les tables en question, ou bien, si vous avez éteint le serveur mysqld , faites :

isamchk -r --silent --sort-index -O sort_buffer_size=16M */*.ISM
myisamchk -r --silent --sort-index  -O sort_buffer_size=16M */*.MYI

<< Mettre en place un régime d'entretien de MySQL >>
Utilisation de myisamchk pour la maintenance des tables et leur recouvrement Prévention des désastres et restauration Obtenir des informations sur une table
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -