Dump sql d'une base innodb endommagée

serge chelli -  
 dark -
Bonjour,

J'ai une base de données mySQL innoDB endommagées. Impossible de relancer mysql sans mettre la directive innodb_force_recovery=5 dans my.ini

Mon serveur mySQL est en version 4.1 sous windows.

Je n'arrive pas à faire de DUMP SQL comme le recommande la doc mysql car le système me retourne systématiquement le message :

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `comptes`':
Incorrect key file for table 'comptes'; try to repair it (1034)
mysqldump: Got error: 1034: Incorrect key file for table 'comptes'; try to repair it when retrieving data from server

Le problème est que innoDB ne permet pas de réparer une table !

Comment faire pour avoir une chance de retrouver mes données ?

Mreci d'avance

Serge
A voir également:

8 réponses

arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
J'ai trouvé deux trois choses.

Peux-tu essayer de passer la commande suivante sur le serveur mysql en utilisant ta base corrompu ?

CHECK TABLE comptes EXTENDED;

Cette commande te permettra déjà de vérifier que la table mysql est ou non en status OK.

J'ai corrompu une base pour faire des tests, et le résultat si la table est HS est à peu près le suivant :

mysql> CHECK TABLE nuked_banned EXTENDED;
+-------------------+-------+----------+----------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-------------------+-------+----------+----------------------------------------------------------+
| fan3.nuked_banned | check | error | Incorrect information in file: './fan3/nuked_banned.frm' |
+-------------------+-------+----------+----------------------------------------------------------+

Je continue de regarder pour récuperer les tables, normalement il ne faut d'après ce que j'ai lu que les FRM et ibdata1 pour lancer mysql, mais les logfile servent pour recréer des index il me semble.

Déjà il faudrait savoir via ma commande du dessus si toutes les tables sont endommamgées ou une seule seulement.
2
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Je pense que tu dois pouvoir restaurer alors mais as-tu essayé dde couper mysqld et de le relancer manuellement?
1
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
J'ai cherché un peu là : http://www.mirrors-r-us.net/

Et apparement ce qu'ils disent et qu'il faut couper mysqld et relancer le serveur ce qui devrait normalement corriger l'erreur.

Je cherche voir si je trouve pas autre chose.
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Ah oui au fait question : tu as une sauvegarde des données à chaud ou à froid?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
serge chelli Messages postés 3 Statut Membre
 
mon serveur a redémarré 2 fois de suite à une coupure d'electricité.
Je n'ai que ibdata1 qui fait 21 GB et tous les dossiers des bases de données avec les FRM dedans.
J'ai supprimé les fichiers ib_logfile0 et ib_logfile1 pensant qu'ils étaient responsable de l'erreur (sans les sauvegarder)
0
serge chelli Messages postés 3 Statut Membre
 
Impossible malgré le lancement de mysql manuellement.
0
arth Messages postés 10414 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
C'est une grosse base de données? Elle est sensible?
0
serge chelli Messages postés 3 Statut Membre
 
Bonsoir et bonne année.

Cette base de données fait 21 giga, elle contient plus de 100 bases de données d'un serveur d'applications en ligne.

Outre le fait que j'ai perdu 6 heures d'activité sur la plupart des bases de données (j'ai restauré les bases de la veille), je n'ai aucune sauvegarde de 3 bases dont les dump SQL ne fonctionnaient pas depuis plusieurs mois.

Oui, récupérer cette base de données est important pour moi.

Merci de toute aide.
0
dark
 
Salut,

J'ai un ibdata corrompu moi aussi, j'aimerais savoir si je pourrais avoir un coup de main egalement,
j'ai essayé toutes les précedentes techniques, la je m'oriente vers innodb-tools mais si vous aviez
une astuce pour récupérer ces précieuses données, j'en serai ravi
0