De temps en temps, je reçois un message d'erreur indiquant que l'une de mes tables "est marquée comme plantée et doit être réparée". Je fais alors un REPAIR TABLE et le répare. Qu'est-ce qui fait que ces tables sont marquées comme étant en panne et comment puis-je l'éviter ? J'utilise des tables MyISAM avec MySQL 5.0.45.
Réponses
Trop de publicités?Il peut y avoir plusieurs raisons pour lesquelles les tables sont corrompues, cela est discuté en détail dans la section manuel .
Pour le combattre, les mesures suivantes sont les plus efficaces :
- Assurez-vous que vous avez toujours fermé MySQL correctement
- Pensez à utiliser l'option --myisam-recover pour vérifier/réparer automatiquement vos tables dans le cas où la fermeture n'a pas été faite correctement.
- Assurez-vous que vous disposez des versions les plus récentes, car les bogues de corruption connus sont normalement corrigés dès que possible.
- Vérifiez votre matériel à l'aide d'un test pour voir s'il pose des problèmes. Des outils comme sysbench et memtest86 peut souvent aider à vérifier si les choses fonctionnent comme elles le devraient.
- Assurez-vous que rien ne touche le répertoire de données de l'extérieur, comme les antivirus, les programmes de sauvegarde, etc...
J'avais l'habitude de recevoir des erreurs de mysql tout comme vous.
J'ai résolu mes problèmes de la manière suivante
- Convertir toutes les tables myisam en InnoDB (vous pouvez chercher "myisam vs InnoDB" dans stackoverflow.com et les moteurs de recherche pour savoir pourquoi).
- Pour obtenir les meilleures performances de MySQL, utilisez un programme tiers MONyog (MySQL Monitor and Advisor) et vérifiez les conseils de performance.
Ces deux étapes m'ont sauvé. J'espère qu'elles vous aideront aussi beaucoup.
Ça peut être beaucoup de choses, mais Blog sur les performances de MySQL mentionne une mauvaise mémoire, des bogues du système d'exploitation ou de MySQL qui pourraient causer une corruption cachée. Aussi, que et un autre article mentionne plusieurs choses à garder à l'esprit lors de la récupération d'un crash.