IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

réparer une table innodb


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Par défaut réparer une table innodb
    Bonsoir à tous, j'ai un pb épineux (pour moi) et j'aimerai votre avis.
    j'ai un serveur sous java qui travaille avec un moteur innodb sous mysql 5.0.27
    Depuis plusieurs mois il tourne sans pb avec plusieurs centaines de tx par jour. Fait exprès, cela fait 2 semaines d'affilée qu'il me fait un

    091209 22:57:00 [ERROR] D:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Incorrect key file for table '.\context\T1.MYI'; try to repair it
    091209 23:21:50 [ERROR] D:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Table '.\context\T1' is marked as crashed and should be repaired
    091209 23:21:50 [ERROR] D:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Table '.\context\T1' is marked as crashed and should be repaired
    ...
    dans le log de l'appli java l'erreur sql exception est de type
    [20091209-225700.984] *E* SQL Exception occurs : Incorrect key file for table '.\context\T1.MYI'; try to repair it
    puis...
    [20091209-225716.171] *E* SQL Exception occurs : Duplicate entry '688293' for key 1
    donc la raison est l'unicité de la clé primaire au niveau de la tx générée dans le code, je vais donc chercher le bug.

    en attendant j'ai fait un mysql adminitrator suivi d'une maintenance (repair table mode extended ) qui a tout arrangé.

    comment dans un but de robustesse puis-je implanter l'équivalent d'un check/repair de mysql administrator alors que la doc indique que ces commandes sont réservées à myisam ?

    merci d'avance de vos réponses/directions/
    ...

  2. #2
    Membre confirmé Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Par défaut
    j'ai trouvé un moyen / réparation que je vous propose.

    * Passer mysql en mode recovery :

    user@machine:~$ sudo /etc/init.d/mysql stop
    [sudo] password for user :

    * Stopping MySQL database server mysqld [ OK ]
    user@machine:~$ sudo /usr/sbin/mysqld --innodb_log_file_size=5242880 --innodb_force_recovery=6
    [...]
    La dernière commande ne rend pas la main, il faut donc exécuter les commandes suivantes sur un autre terminal.

    * Sauvegarder la base
    user@machine:~$ mysqldump -u root -p MA_BASE > MA_BASE.dump
    password:
    user@machine:~$

    * Supprimer et recréer la base
    user@machine:~$ mysql -u root -p
    password:
    mysql > DROP DATABASE MA_BASE;
    Query OK, 10 rows affected (0.03 sec)
    mysql > CREATE DATABASE MA_BASE;
    Query OK, 1 row affected (0.00 sec)

    * Relancer mysql en mode normal
    user@machine:~$ sudo /etc/init.d/mysql restart
    * Stopping MySQL database server mysqld [ OK ]
    * Starting MySQL database server mysqld [ OK ]
    user@machine:~$

    * Réimporter votre base
    user@machine:~$ mysql -u root -p MA_BASE < MA_BASE.dump
    password:
    user@machine:~$

    et le tour est joué
    hope this helps
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lenteur des INSERT sur une table InnoDB
    Par olive_le_malin dans le forum Requêtes
    Réponses: 7
    Dernier message: 10/06/2010, 12h47
  2. Réponses: 4
    Dernier message: 04/02/2009, 19h09
  3. Update dans une table innodb
    Par Mydriaze dans le forum Débuter
    Réponses: 1
    Dernier message: 28/04/2008, 14h07
  4. Modifier une contrainte sur une table InnoDb
    Par DomZZZ dans le forum Outils
    Réponses: 1
    Dernier message: 13/03/2006, 14h40
  5. comment réparer une table ?
    Par _Arthur_ dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/09/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo