Restauration innodb

Le
Vincent Ramos
Bonjour,

J'ai la délicate tâche de restaurer des tables innodb utilisées par un
serveur MySQL qui n'existe plus et donc seuls sont restés les répertoires
et fichiers contenus sous /var/lib/mysql, c'est-à-dire des répertoires ne
contenant pas les données mais seulement la structure des tables et les
options de la base (type bla.frm et db.opt). Toutes les données utiles sont
dans ibdata1, ib_logfile0 et ib_logfile1. Il y a là-dedans plusieurs tables
mêlées.

Je n'ai bien sûr aucun dump des tables.

Malgré mes recherches, je ne parviens pas à trouver comment je peux recréer
les tables sur un autre serveur MySQL : recréer leur structure n'est pas
compliqué, mais je ne sais pas comment importer les données d'ibdata1,
ib_logfile0 et ib_logfile1 dans les fichiers homonymes de ce second
serveur.

Il me faudrait fusionner ces données, mais je ne trouve aucun moyen de le
faire à partir des fichiers eux-mêmes.

Toute aide est bienvenue.

Merci.

P.-S. Je suis sous GNU/Linux.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Ramos
Le #21901711
Vincent Ramos wrote:

Il me faudrait fusionner ces données, mais je ne trouve aucun moyen de le
faire à partir des fichiers eux-mêmes.



Si j'avais lu cette page
plutôt que de la survoler, je n'aurais sans doute pas eu besoin de publier
ma question.
Vincent Ramos
Le #21901701
Vincent Ramos wrote:

Si j'avais lu cette page
plutôt que de la survoler, je n'aurais sans doute pas eu besoin de publier
ma question.



En fait, si car la doc n'est pas très claire sur les possibilités de
restauration si l'on n'a pas les logs binaires (ce qui était aussi mon
cas).

Voici comment j'ai fait, si cela peut en aider d'autres :
-- utiliser un serveur MySQL propre et sans données importantes en InnoDB
qui servira de tampon ;
-- arrêter mysqld ;
-- sauvegarder ibdata1 et les fichiers ib_logfile (en les renommant, par
exemple) ;
-- placer dans le répertoire de mysql (/usr/lib/mysql, par exemple, selon la
distribution) les répertoires contenant les fichiers *.frm et *.opt des
tables à restaurer ;
-- placer dans le même répertoire les fichiers ibdata1 et ib_logfile
contenant les anciennes tables ;
-- vérifier que les différents fichiers et répertoires ont les bonnes
permissions ;
-- lancer mysqld avec l'option --innodb_force_recovery=6 ;
-- les données sont récupérées. On peut utiliser mysqldump pour générer des
dump qu'on pourra réinjecter dans un autre serveur MySQL sans passer par
toutes ces étapes.

Voilà.
Gilles RONSIN
Le #21901691
Vincent Ramos 2008 18:39:05, écrivait ceci:

Salut,

Merci pour ce retour, que j'archive. Ca servira sûrement un jour.

;-)
Publicité
Poster une réponse
Anonyme