extundelete恢復rm的資料

dotaddjj發表於2012-08-31

rm掉了資料檔案,導致資料庫無法開啟,由於沒有完整的備份和歸檔,需要使用別的方法,而客戶又關閉了資料庫,導致無法使用檔案描述符恢復,就要使用linux上別的方法了,現記錄使用extundelete來恢復丟失的檔案

[root@server119 ~]# cd /db

[root@server119 db]# ll

總計 32

drwxrwxr-x 2 oracle oinstall 16384 2011-05-06 lost+found

-rwxr-xr-x 3 oracle oinstall 21096 08-02 18:05 odu

drwxrwxr-x 7 oracle oinstall 4096 2011-05-06 oracle10g

[root@server119 db]# rm -rf odu

[root@server119 db]# df -h

檔案系統 容量 已用 可用 已用% 掛載點

/dev/sda3 39G 26G 12G 70% /

/dev/sda10 331G 312G 2.3G 100% /opt

/dev/sda9 20G 175M 19G 1% /tmp

/dev/sda8 20G 439M 18G 3% /var

/dev/sda7 20G 11G 8.3G 56% /home

/dev/sda6 20G 1.7G 17G 9% /vol

/dev/sda2 331G 310G 4.1G 99% /db

/dev/sda1 2.0G 42M 1.8G 3% /boot

tmpfs 16G 0 16G 0% /dev/shm

/dev/sdb1 929G 709G 173G 81% /db2

/dev/sdb2 905G 622G 238G 73% /opt2

192.168.0.121:/nfs7 1.1T 621G 391G 62% /dbbak2

[root@server119 extundelete-0.2.0]# mount -n -r -o remount /db

最好儘快將所在分割槽修改為只讀方式,防止資料被覆蓋使用。

[root@server119 /]# cd root

[root@server119 ~]# ll

-rw-r--r-- 1 root root 97851 08-31 12:10 extundelete-0.2.0.tar.bz2

這裡上傳一個工具主要用於ext3檔案系統,ext4沒有測試過。

[root@server119 ~]# tar xjvf extundelete-0.2.0.tar.bz2

extundelete-0.2.0/

extundelete-0.2.0/README

extundelete-0.2.0/acinclude.m4

extundelete-0.2.0/configure.ac

extundelete-0.2.0/aclocal.m4

......

安裝extundelete工具

root@server119 ~]# cd extundelete-0.2.0

[root@server119 extundelete-0.2.0]# ls

acinclude.m4 autogen.sh config.h.in configure.ac install-sh Makefile.am missing src

aclocal.m4 compile configure depcomp LICENSE Makefile.in README

[root@server119 extundelete-0.2.0]# ./configure

Configuring extundelete 0.2.0

Writing generated files to disk

[root@server119 extundelete-0.2.0]# make

make -s all-recursive

Making all in src

[root@server119 extundelete-0.2.0]# make install

Making install in src

/usr/bin/install -c 'extundelete' '/usr/local/bin/extundelete'

使用extundelete進行rm檔案或者資料夾的恢復

[root@server119 extundelete-0.2.0]# extundelete /dev/sda2 --restore-all

Loading filesystem metadata ... 2236 groups loaded.

Loading journal descriptors ... 30441 descriptors loaded.

Writing output to directory RECOVERED_FILES/

此時可以將、dev/sda2分割槽的被刪除但是還沒有被重用的block恢復,而如果block已經被重用了,此種方法不行了,而後會在當前目錄下建立一個RECOVERD_FILES的目錄,目錄下就是extundelete恢復的檔案或者資料夾(個人嘗試恢復資料夾,發現恢復的資料夾存在部分檔案丟失,無法恢復,可能是block被重用導致)。

[root@server119 extundelete-0.2.0]# ll RECOVERED_FILES/

總計 16

-rwxr-xr-x 2 root root 21096 08-31 14:53 odu

已經成功恢復。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1059303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章