当前位置:首页 > linux教程 > 列表

linux中extundelete恢复已删除的数据文件

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-27 15:48:18 浏览: 评论:0 

extundelete就是用来恢复文件了,只要我们删除后的文件没有被覆盖就可以常用使用此工具来恢复了,下面来看个例子.

因为人员离职闹得不愉快,系统工程师离职后,由于公司未及时关闭其vpn,数据库服务器(Linux 6.5 Oracle 11.2.0.1)帐号未及时被修改,最后直接上去rm ORACLE_BASE给干掉,悲剧的是ORADATA目录也在里面,更加悲剧的是所有数据文件都在里面.也就是说数据库彻底被删除,而且没有任何备份.朋友咨询了我,让我给予支持.最后比较幸运,文件没有被覆盖,inode都还在,通过extundelete顺利恢复所有数据文件,控制文件,redo文件(extundelete恢复Linux被删除文件),数据库顺利打开,实现0丢失,算是一次完美的恢复,代码如下:

  1. [root@DB1 tmp]# tar xvf extundelete-0.2.4.tar  
  2. extundelete-0.2.4/ 
  3. extundelete-0.2.4/acinclude.m4 
  4. extundelete-0.2.4/missing 
  5. extundelete-0.2.4/autogen.sh 
  6. extundelete-0.2.4/aclocal.m4 
  7. extundelete-0.2.4/configure 
  8. extundelete-0.2.4/LICENSE 
  9. extundelete-0.2.4/README 
  10. extundelete-0.2.4/install-sh 
  11. extundelete-0.2.4/config.h.in 
  12. extundelete-0.2.4/src/ 
  13. extundelete-0.2.4/src/extundelete.cc 
  14. extundelete-0.2.4/src/block.h 
  15. extundelete-0.2.4/src/kernel-jbd.h 
  16. extundelete-0.2.4/src/insertionops.cc 
  17. extundelete-0.2.4/src/block.c 
  18. extundelete-0.2.4/src/cli.cc 
  19. extundelete-0.2.4/src/extundelete-priv.h 
  20. extundelete-0.2.4/src/extundelete.h 
  21. extundelete-0.2.4/src/jfs_compat.h 
  22. extundelete-0.2.4/src/Makefile.in 
  23. extundelete-0.2.4/src/Makefile.am 
  24. extundelete-0.2.4/configure.ac 
  25. extundelete-0.2.4/depcomp 
  26. extundelete-0.2.4/Makefile.in 
  27. extundelete-0.2.4/Makefile.am 
  28. [root@DB1 tmp]# cd extundelete-0.2.4 
  29. [root@DB1 extundelete-0.2.4]# ./configure  
  30. Configuring extundelete 0.2.4 
  31. Writing generated files to disk 
  32. [root@DB1 extundelete-0.2.4]# make && make install 
  33. make -s all-recursive 
  34. Making all in src 
  35. Making install in src 
  36.   /usr/bin/install -c extundelete '/usr/local/bin' 
  37. [root@DB1 extundelete-0.2.4]# df -h 
  38. Filesystem      Size  Used Avail Use% Mounted on 
  39. /dev/sda3       244G   11G  221G   5% / 
  40. tmpfs            16G   72K   16G   1% /dev/shm 
  41. /dev/sda1       190M   62M  119M  35% /boot 
  42. /dev/sdb1       2.0T   71M  1.9T   1% /home 
  43. [root@DB1 extundelete-0.2.4]# umount /dev/sdb1 
  44. umount: /home: device is busy. 
  45.         (In some cases useful info about processes that use 
  46.          the device is found by lsof(8) or fuser(1)) 
  47. [root@DB1 extundelete-0.2.4]# fuser -m -u /home 
  48. /home:                3914c(oracle)  8372c(oracle) 
  49. [root@DB1 extundelete-0.2.4]# kill -9 3914 
  50. [root@DB1 extundelete-0.2.4]# fuser -m -u /home 
  51. /home:                8372c(oracle) 
  52. [root@DB1 extundelete-0.2.4]# kill -9 8372 
  53. [root@DB1 extundelete-0.2.4]# fuser -m -u /home 
  54. [root@DB1 extundelete-0.2.4]# umount /dev/sdb1 
  55. [root@DB1 extundelete-0.2.4]# df -h 
  56. Filesystem      Size  Used Avail Use% Mounted on 
  57. /dev/sda3       244G   11G  221G   5% / 
  58. tmpfs            16G   72K   16G   1% /dev/shm 
  59. /dev/sda1       190M   62M  119M  35% /boot 
  60. [root@DB1 extundelete-0.2.4]# extundelete /dev/sdb1 --restore-all 
  61. NOTICE: Extended attributes are not restored. 
  62. Loading filesystem metadata ... 16384 groups loaded. 
  63. Loading journal descriptors ... 26542 descriptors loaded. 
  64. Searching for recoverable inodes in directory / ...  
  65. 18896 recoverable inodes found. 
  66. Looking through the directory structure for deleted files ...  
  67. 2 recoverable inodes still lost. 
  68. Unable to restore inode 43778050 (file.43778050): Space has been reallocated. 
  69. [root@DB1 extundelete-0.2.4]# ls 
  70. acinclude.m4  autogen.sh  config.h.in  config.status  configure.ac  install-sh  Makefile     Makefile.in 
  71. aclocal.m4    config.h    config.log   configure      depcomp       LICENSE     Makefile.am  missing     
  72. [root@DB1 extundelete-0.2.4]# cd RECOVERED_FILES/ 
  73. [root@DB1 RECOVERED_FILES]# ls 
  74. app  file.43778051  oracle  oraInventory 
  75. [root@DB1 RECOVERED_FILES]# cd app 
  76. [root@DB1 app]# ls 
  77. admin  cfgtoollogs  diag  oracle  oradata  orcl  ORCL 
  78. [root@DB1 app]# cd oradata  //phpfensi.com 
  79. [root@DB1 oradata]# ls 
  80. orcl 
  81. [root@DB1 oradata]# cd orcl 
  82. [root@DB1 orcl]# ls 
  83. control01.ctl  redo01.log  redo02.log  redo03.log  sysaux01.dbf  system01.dbf  undotbs01.dbf  users01.dbf 
  84. [root@DB1 orcl]# ls -ltr 
  85. total 2908776 
  86. -rw-r--r--. 1 root root  734011392 Nov 18 02:06 system01.dbf 
  87. -rw-r--r--. 1 root root 1069555712 Nov 18 02:06 sysaux01.dbf 
  88. -rw-r--r--. 1 root root  120594432 Nov 18 02:06 undotbs01.dbf 
  89. -rw-r--r--. 1 root root  887365632 Nov 18 02:06 users01.dbf 
  90. -rw-r--r--. 1 root root    9748480 Nov 18 02:06 control01.ctl 
  91. -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo01.log 
  92. -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo02.log 
  93. -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo03.log 
  94. [root@DB1 orcl]# 

再次提醒各位:数据库备份重于一切,防天灾的同时还要防人灾,也希望圈子里面以后不要听到类似故障.

Tags: extundelete linux恢复删除

分享到: