有关extdelete恢复测试

时间:2015-07-06 20:10:25   收藏:0   阅读:109

客户意外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

已经成功恢复

 

来自 <http://blog.163.com/scott_guo/blog/static/1810260832012913113728302/>

 



以上方式,仅适用于超级快没有损坏的情况,在suer-block损坏后,用fsck修复会擦掉记录的信息,这会导致extundelete无法扫出任何可恢复的文件,也就是说,如果你恢复时报super-block的错误的话,基本上是找不回来了




评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!