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

Administration MySQL Discussion :

MYSQL restaurer innodb


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut MYSQL restaurer innodb
    Bonjour,
    je rencontre un problème sur ma base de donnée perconna SQL, pourriez vous m'aider ?
    Suite à un problème d'espace libre certaines tables se sont comme curieusement vidées.

    Puis elles ont pris en compte de nouveaux enregistrements
    Mes tables fonctionnent avec le mode innodb, cependant après s’être "vidée" le fichier de la table avec l'extension .ibd pèse quand même 10 Mo et quand je regarde actuellement dans la table il n'y a que quelques lignes pas de quoi faire 10 Mo...
    Donc je me dis que la table ne s'est pas totalement vidée.
    Et que c'est le fichier ibdata1 qui n'est plus correct et n'a pas toutes les infos qu'il faut.
    Il faudrait enfait le régénérer mais c'est la grosse galère.
    J'ai essayé des utilitaires de restauration, mais ça n'a pas l'air de marcher
    En voici un http://www.ipserverone.info/database...from-ibd-file/
    Que pensez vous du problème ? connaissez vous un moyen de restauration ?
    Y a t-il un moyen de générer un .sql d'après les fcihiers frm et ibd ?


    Je vous remercie

    Cordialement

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 600
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Quelle est votre version MySQL et votre table est elle partitionnée ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    Je suis sous perconna SQL 5.6 ça veut dire quoi une table partitionnée ?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 600
    Billets dans le blog
    10
    Par défaut
    Le partitionnement consiste a avoir plusieurs (groupes de) fichiers de stockage pour une même table : autant que de partitions
    Consultez le manuel de référence MySQL de votre version pour les informations détaillées liées au partitionnement

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    Alors non ce n'est pas partitionné

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut g_escande81.

    Citation Envoyé par g_escande81
    Et que c'est le fichier ibdata1 qui n'est plus correct et n'a pas toutes les infos qu'il faut.
    Il faudrait en fait le régénérer mais c'est la grosse galère.
    Comment êtes-vous arrivé à conclure que votre problème provient du fichier ibdata1 ?

    La seule solution possible (et facile) est d'avoir au préalable fait une sauvegarde de votre base de données.
    De réinstaller la même version mysql et d'importer votre sauvegarde.

    Comme je le suppose, vous n'avez pas fait de sauvegarde, et donc vous avez perdu votre base de données.

    Sinon comment recréer ce fichier ibdata1 ?

    1) faire l'inventaire de toutes les tables InnoDB dans votre serveur mysql.
    Ce sont aussi bien les tables de vos bases de données, mais aussi celle de la base mysql.

    2) vous devez posséder le descriptif de toutes ces tables.

    3) vous renommer le répertoire mysql5.6.xx en mysql5.6.xxbis.

    4) vous installez la même version mysql (oui, c'est indispensable).

    5) vous avez donc un fichier ibdata1 vierge.
    Pour chaque base de données, et pour chaque table ayant le moteur InnoDB, vous devez les récréer dans le fichier ibdata1.

    6) Pour la base de données MySql, il est inutile de faire quoi que ce soit car ibdata1 contient déjà le descriptif des tables InnoDB de la base MySql.

    7) pour vos bases de données à vous, vous devez recréer toutes vos bases de données.
    Puis ensuite, vous devez faire "create table xxx" pour chaque table de cette base de données ayant le moteur InnoDB.

    8) c'est long, fastidieux à faire et vous aurez certainement oublier de faire quelque chose.

    9) bon, maintenant vous avez un fichier innodb1 non corrompue !
    Vous le recopiez en venant écraser votre ancien fichier ibdata1 dans le répertoire "mysql5.6.xxbis/data".

    10) vous détruisez le répertoire "mysql5.5.xx" nouvellement créé, qui ne vous sert plus à rien.
    Vous renommer l'ancien répertoire "mysql5.6.xxbis" en "mysql5.6.xx".
    Vous relancez votre serveur mysql et vous faites le test d'accessibilité. En principe, cela doit fonctionner.

    11) par mesure de sécurité, faites une sauvegarde de votre base de données !

    @+

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    Ok je vais voir si ça marche mais il me semble avoir deja essayer cela.

    J'ai trouvé un site payant qui fait ça j'ai testé sur une bdd de test je visualise bien les données perdues par contre pour télécharger un dump c'est payant.

    Connaissez vous cet outil est-ce risqué pour mon client?

    J'ai fait des recherches ça à l'air un peu connu quand même.

    https://recovery.twindb.com/

    Merci de me dire

  8. #8
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut g_escande81.

    Pourquoi payer pour avoir ce qui est gratuit ?

    Citation Envoyé par g_escande81
    Connaissez vous cet outil est-ce risqué pour mon client?
    Je ne connais pas cet outil et donc je ne peux pas m'avancer sur le risque encouru.


    @+

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    Merci pour les infos.

    J'ai tenté ce que tu me dis mais je n'arrive pas à acceder aux table une fois ça me met :
    No connection. Trying to reconnect...
    ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104
    ERROR:
    Can't connect to the server

  10. #10
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut g_escande81.

    --> https://stackoverflow.com/questions/...thorization-pa
    --> https://stackoverflow.com/questions/...n-packet-syste
    --> https://stackoverflow.com/questions/...stem-error-104

    Vos tests, vous devriez les faire en local sur votre serveur et non depuis un ordinateur distant.

    La méthode que je vous ai indiqué est délicate à faire.
    Dans mon site, à la page ibdata1, j'ai rencontré un problème similaire où j'explique comment j'ai procédé.
    Une des solutions que j'ai adopté était de passer du moteur InnoDB au moteur MyIsam sur les tables qui me posaient des problèmes.

    Cela dépend aussi du plantage que vous avez rencontré.
    Il se peut aussi que vos tables soient vérolées et donc, devoir faire de la maintenance.
    --> https://www.dsfc.net/logiciel-libre/...myisam-innodb/
    --> https://www.percona.com/blog/2010/12...s-innodb-stop/

    @+

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    ça ne marche pas c'est peut être directement mon fichier idb qui est endommagé

    Car à chaque fois dans la restauration je retrouve 1 seule ligne alors qu'il y en a plein et mon fichier fait quand même 10 Mo
    L’utilitaire payant marche en fait par table je peux visualiser les données qui paraissent mais bon c'est 99$ et bon c'est un CMS et il y a plusieurs table endommagé
    Je désespère là ....

  12. #12
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut g_escande81.

    Si vous avez lu mon didacticiel sur le fichier ibdata1, vous avez remarqué que c'était un cas particulier où il y avait une différence de déclaration entre le contenu du fichier ibdata1 et le descriptif des tables InnoDB.
    Si vous pouvez redémarrer votre application avec une base de données vide, c'est déjà une avancée dans le retour à la normal.

    Ce problème, je le connais car vous n'êtes pas le premier à poser la question sur ce forum. Actuellement, je n'ai aucune solution à vous proposer.
    Il faudrait bidouiller dans le fichier ibdata1 et voir ce qui a été cassé.

    Comme vous ne connaissez pas la cause exacte de votre problème, nous ne faisons que tâtonner dans le vide.
    Il aurait fallu au préalable, faire une sauvegarde de votre base de données.

    @+

Discussions similaires

  1. MySQL ou INNODB limité?
    Par krapno dans le forum MySQL
    Réponses: 12
    Dernier message: 15/12/2008, 10h27
  2. Erreur migration toolkit mysql: ENGINE=InnoDB
    Par qlaimand dans le forum Outils
    Réponses: 1
    Dernier message: 06/06/2008, 17h35
  3. L'éternel combat : MySQL vs InnoDB
    Par shadeoner dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/01/2008, 13h01
  4. EasyPHP MySQL changement InnoDB
    Par florynth dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 13/10/2007, 15h58

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