-
Besoin de documentation
Bonjour à vous,
J'ai récemment fait la douloureuse découverte d'une faiblesse notable de la version Opensource de MySQL. En effet, dans le cas particulier d'un plantage système, j'ai compris qu'il n'était pas possible de reconstruire une base de données InnoDB à partir des fichiers MySQL de cette base, ibdata1, ib_logfile0, ib_logfile1 ainsi que le dossier de la base de données avec tout son contenu, fichiers .frm, .ibd et .opt, même s'ils ne sont pas corrompus.
Le problème est simple à mettre en évidence, il suffit sur un serveur MySQL A parfaitement fonctionnel de construire une base de données InnoDB simple avec une petite table quelconque et quelques enregistrements. Puis de récupérer tous les fichiers ci-avant cités de cette mini-base et de tenter d'intégrer ces derniers sur un autre serveur MySQL de même version sur le même OS. C'est tout simplement impossible...
Je me suis alors posé plein de question, et j'ai même ouvert un post sur le sujet qui ne m'a permis que de comprendre que c'était impossible sans la mise en œuvre d'outils uniquement disponible dans les versions pro et nécessitant la conversion de la base à reconstruire en version pro. Donc, à moins d'avoir une version pro sous la main (ça coûte un bras) pour faire la manip histoire de récupérer un fichier SQL et reposer tout ça sur une version Opensource, il n'y a pas de solution.
Je me suis alors lancé un défit :
Écrire un programme en Java qui lirait ces fichiers MySQL afin de produire un fichier d'import SQL pour ensuite l'importer le plus simplement du monde via phpmyadmin par exemple.
Ok, seulement voilà, les fichiers en question ne sont pas des fichiers texte. Ils contiennent du texte, en les parcourant on peut même réussir à lire le texte représentant le contenu d'une table, mais pour le reste, c'est une question d'interprétation. Et là, je coince car je ne trouve aucune documentation sur le format de ces fichiers .ibd, pas plus pour les fichiers ibdata1 et ib_logfile ?!
Pourtant, il s'agit bien là de version Opensource ?!
Donc, voilà ma question : Existe-t'il une documentation sur le format des fichiers InnoDB de MySQL Opensource ? Et si oui, où puis-je les trouver ?
Merci à vous.
-
Bonjour yotta,
Pour ce genre de problématique je pense que le plus simple est encore d'utiliser mysqldump.
Copier directement les fichiers de données d'un serveur à un autre, ne t'amènera je pense qu'à corrompre tes données.
-
Merci
Merci Cerbère,
MySQLDump est effectivement la solution de 'réparation' possible pour un tel cas de figure. Mais en parcourant le lien que vous m'avez fourni, j'ai rebondis sur une partie de la documentation de MySQL que je n'avais pas encore explorée et qui dispense de manière très détaillée tous les l'architecture du moteur InnoDB. Ces informations vont beaucoup m'aider à comprendre comment ces fichiers sont utilisés, ce qu'ils contiennent et éventuellement, trouver une solution perso pour reconstruire une base de données à partir de ces fichiers sans même utiliser MySQL. Je penses cela possible au vue des aperçus de contenu de ces fichiers à travers un outils texte quelconque.
Cependant, avec ce nouveau lot d'informations, ma question devient obsolète, je vais donc mettre ce post comme résolu.
;)