误删数据库文件,系统级文件恢复

描述:

        今天测试库造数据的时候,归档日志过多,一直在手动删除日志。中途去数据文件目录看了一眼数据文件,路径没有切换走,后面就惯性的把数据文件当日志文件全部删掉了。最后用debugfs工具恢复了数据文件。

删除数据库文件,文件在/data1/oradata/ora1路径下,在/dev/sda3设备上:

[oracle]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        36G   29G  4.6G  87% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       283M   33M  236M  13% /boot
/dev/sdb1        30G   44M   28G   1% /data2
[oracle]$ pwd
/data1/oradata/ora1
[oracle]$ ll
total 12954268
-rw-r-----. 1 oracle dba   12337152 Jun 13 14:38 control01.ctl
-rw-r-----. 1 oracle dba   12337152 Jun 13 14:38 control02.ctl
-rw-r-----. 1 oracle dba   33562624 Jun 13 13:14 dpm_cur_data01.dbf
-rw-r-----. 1 oracle dba  369106944 Jun 13 13:14 dpm_his_data01.dbf
-rw-r-----. 1 oracle dba   33562624 Jun 13 13:14 indx01.dbf
-rw-r-----. 1 oracle dba   52429312 Jun 13 14:38 redo01.log
-rw-r-----. 1 oracle dba   52429312 Jun 13 13:07 redo02.log
-rw-r-----. 1 oracle dba   52429312 Jun 13 13:09 redo03.log
-rw-r-----. 1 oracle dba 1069555712 Jun 13 14:35 sysaux01.dbf
-rw-r-----. 1 oracle dba 1499471872 Jun 13 14:35 system01.dbf
-rw-r-----. 1 oracle dba 2143297536 Jun 13 13:12 temp01.dbf
-rw-r-----. 1 oracle dba  104865792 Jun 13 13:14 tem_tps101.dbf
-rw-r-----. 1 oracle dba 4311752704 Jun 13 13:14 tp01.dbf
-rw-r-----. 1 oracle dba  524296192 Jun 13 13:14 tps201.dbf
-rw-r-----. 1 oracle dba 2993692672 Jun 13 14:32 undotbs01.dbf
[oracle]$ rm -rf  *

用debugfs命令恢复文件,为了避免恢复的数据覆盖还未恢复的数据块,将数据恢复到了/dev/sdb1这个设备上。

[root@]# debugfs                              
debugfs:  open /dev/sda3                     
debugfs:  ls -d /data1/oradata/ora1/         
debugfs:  dump     <1193015>  /data2/control01.ctl               
debugfs:  quit 

[root]# debugfs                               --在root账号下执行debugfs命令
debugfs 1.41.12 (17-May-2010)
debugfs:  open /dev/sda3                       --打开数据文件所在的设备
debugfs:  ls -d /data1/oradata/ora1/           --查看原路径下文件的Inode号,有<>尖括号的Inode是已经被删除了的,后面跟有原文件名
 1192997  (12) .    1192996  (4084) ..   <1193015> (24) control01.ctl
<1193016> (24) control02.ctl   <1193019> (20) redo01.log
<1193020> (20) redo02.log   <1193021> (20) redo03.log
<1193022> (40) system01.dbf   <1193027> (20) sysaux01.dbf
<1193032> (3924) undotbs01.dbf   <1193033> (20) temp01.dbf
<1193407> (88) tp01.dbf   <1193688> (48) indx01.dbf
<1193770> (28) dpm_cur_data01.dbf   <1194451> (24) tem_tps101.dbf
<1194612> (3792) tps201.dbf   <1193448> (3772) dpm_his_data01.dbf 
debugfs:
debugfs:  dump     <1193015>  /data2/control01.ctl                --用dump命令恢复所有文件,恢复到/dev/sdb1设备的/data2/路径下,防止恢复的数据覆盖了原来数据的数据块。
debugfs:  dump     <1193016>  /data2/control02.ctl
debugfs:  dump     <1193019>  /data2/redo01.log
debugfs:  dump     <1193020>  /data2/redo02.log
debugfs:  dump     <1193021>  /data2/redo03.log
debugfs:  dump     <1193022>  /data2/system01.dbf
debugfs:  dump     <1193027>  /data2/sysaux01.dbf
debugfs:  dump     <1193032>  /data2/undotbs01.dbf
debugfs:  dump     <1193033>  /data2/temp01.dbf
debugfs:  dump     <1193407>  /data2/tp01.dbf
debugfs:  dump     <1193688>  /data2/indx01.dbf
debugfs:  dump     <1193770>  /data2/dpm_cur_data01.dbf
debugfs:  dump     <1194451>  /data2/tem_tps101.dbf
debugfs:  dump     <1194612>  /data2/tps201.dbf
debugfs:  dump     <1193448>  /data2/dpm_his_data01.dbf
debugfs:  quit                                                   --退出

最后将文件拷贝到原路径,修改文件的用户和群组即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值