Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Restauration innodb

3 réponses
Avatar
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.

3 réponses

Avatar
Vincent Ramos
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
<http://dev.mysql.com/doc/refman/5.0/en/innodb-backup.html> correctement
plutôt que de la survoler, je n'aurais sans doute pas eu besoin de publier
ma question.
Avatar
Vincent Ramos
Vincent Ramos wrote:

Si j'avais lu cette page
<http://dev.mysql.com/doc/refman/5.0/en/innodb-backup.html> correctement
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à.
Avatar
Gilles RONSIN
Vincent Ramos , le mer. 18 juin
2008 18:39:05, écrivait ceci:

Salut,

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

;-)