Récupération de fichiers effacés mais lockés ...

Récupération de fichiers effacés mais lockés ... - Installation - Linux et OS Alternatifs

Marsh Posté le 15-10-2007 à 20:36:27    

Alors ... le contexte :  
 
Serveur avec plein de bases Oracle sous Solaris 8 ....  

  • Les dbf et les ctl ont subis un rm (gourrage de racine tout simplement)
  • Les serveurs Oracle tournent toujours
  • Du coup, le FS n'est pas libéré (donc les fichiers sont toujours présent sur les disques)
  • On a récupéré la liste des Inode et des noms de fichiers correspondant


Question : Peut on retricoter les différents répertoires afin de retrouver les fichiers ?

Reply

Marsh Posté le 15-10-2007 à 20:36:27   

Reply

Marsh Posté le 15-10-2007 à 20:40:00    

c'est tendu mais à priori c'est possible : je connais pas bien le FS solaris mais logiquement si tu as la liste des inodes, tu écris un petit programme en C qui va "remonter" les inodes et reconstituer le fichier.
 
précaution : fais un dd de tes partoches vers une image et travaille dessus vite fait avant que ça pète. remonte en lecture seule si tu peux te le permettre.
 
cela dit, si tu as des backups réguliers tu dois pouvoir rejouer tes archivelogs [:cupra]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 15-10-2007 à 22:18:38    

Pour ça faudrait la structure des fichiers répertoire afin de refaire les répertoires effacés.  
 
M'enfin on verra bien.
 
Quant aux backups réguliers, ça servira de leçon à l'équipe qui bosse sur cette base ... surtout que pas mal de données ne sont pas récupérables.

Reply

Marsh Posté le 15-10-2007 à 22:36:27    

TNZ a écrit :

Pour ça faudrait la structure des fichiers répertoire afin de refaire les répertoires effacés.
 
M'enfin on verra bien.
 
Quant aux backups réguliers, ça servira de leçon à l'équipe qui bosse sur cette base ... surtout que pas mal de données ne sont pas récupérables.


 
vous pouvez pa la déduire ? (genre des scripts de backup/maintenance) ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 15-10-2007 à 23:03:30    

L'idée serait de refaire les fichiers "." avec des mknod ou un truc approchant ... quant au backup, yen a pas :D

 

Il faudrait au moins le fichier system.dbf histoire de démarrer un sqlplus et faire péter un export de base.

 

Ceci dit, on a pas essayé la connexion via un listener oracle, ça pourrait marcher ? :heink: (j'y crois pas trop)


Message édité par TNZ le 15-10-2007 à 23:03:44
Reply

Marsh Posté le 15-10-2007 à 23:31:49    

tu peux tenter, ça ne coute rien à priori [:spamafote]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 16-10-2007 à 06:46:08    

J'ai un collègue qui a eu le même soucis. Il a réussi à les récupérer comme ça :
 


Si quelqu'un a fait un malencontreux rm des fichiers du répertoire <rep> des process du user <user>, le répertoire <rep> est vide mais les process sont toujours en machine avec les fichiers ouverts.
 
Avec la commande suivante, on récupère les fichiers :
 
cd /proc
find * -user <user> -links 0 -type f |  
while read f
do
   x=`echo $f | sed 's!/!_!g' `  
   echo ln $f <rep>/$x
done | sh -x


 
A voir si ça marche dans ton cas  :spamafote:


Message édité par Cruchot le 16-10-2007 à 06:48:40
Reply

Marsh Posté le 16-10-2007 à 09:11:40    

Waouuuuuuuh ... bon j'vais tester et essayer ça de suite !

Reply

Marsh Posté le 16-10-2007 à 10:12:32    

YATAAAAAAAAAA !!!!!!!! (heroes indide)
 
Ca fonctionne super ... par contre va falloir partir à la pêche aux noms de fichiers pour faire les mv qui vont bien.

Reply

Marsh Posté le 16-10-2007 à 10:49:39    

Cool :jap:

Reply

Marsh Posté le 16-10-2007 à 10:49:39   

Reply

Marsh Posté le 16-10-2007 à 12:38:19    

Merci ... :)
 
Maintenant, on est en train d'essayer de toper les associations nom de fichier / file descriptor au sein des process via un gcore. Mais C poa gagné :/

Reply

Marsh Posté le 16-10-2007 à 12:39:06    

lsof ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 16-10-2007 à 12:42:49    

Intéressante ... je fouille ;)

Reply

Marsh Posté le 16-10-2007 à 12:53:27    

Arf ... C très intéressant tout ça, mais pour les fichiers qui m'intéressent, il ne me donne que le point de montage. Même pour des fichiers présents. :/
 
J'utilise "lsof -p"

Reply

Marsh Posté le 16-10-2007 à 12:54:27    

j'ai pas de solaris sous la main, désolé [:spamafote]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 17-10-2007 à 16:44:08    

Bon fianlement, j'ai pu retricoter les noms des fichiers pour faire des "mv" en pagaille en partant du principe que les file descriptor sont ouverts toujours dans le même ordre.
 
Du coup, par analogie avec une base opérationnelle, avec des pfile et des find -inum, j'ai pu reposer les fichiers à leur place. Et la base fonctionne.
 
Hot backup parallélisé en cours ... :D (j'f'rai poa ça tout les jours)

Reply

Marsh Posté le 17-10-2007 à 16:49:32    

greetz


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed