您的位置:首页 > 运维架构 > Linux

Linux中如何恢复被误删的数据文件

2014-04-10 12:35 621 查看
Linux环境中文件被删除的恢复,通常有几种情况,如果数据库实例还未停止,那么恢复很easy,如果实例停掉,
那么可能需要借助相关的工具来进行恢复,这里我进行简单的描述。
1. 使用工具进行恢复(ext3grep或者extundelete,e2fsprogs等工具)
我这里使用ext3grep来进行删除文件的恢复,如下是一个例子。
1). 安装rpm包
rpm -ivh ext3grep-0.10.2-1.el4.rf.i386.rpm
2).模拟数据文件被删除的恢复
SQL> !rm -rf /home/ora10g/oradata/roger/roger01.dbf
SQL> shutdown abort;
ORACLE instance shut down.
SQL>
3) 扫描文件inode并restore
?
?
?
开始恢复被删掉的文件:
ext3grep /dev/sda3 –restore-file ora10g/oradata/roger/roger01.dbf
注意这里的格式,后面的路径不能加/home。跟前面的Inode 1783429 is directory “ora10g/oradata/roger”. 保持一致。
或者
ext3grep /dev/sda3 –restore-inode 1784045
或者恢复整个目录
ext3grep /home/store/file –restore-all
如下是我的操作过程:
?
恢复出来的文件,会存放在如下地方:
?
4). 恢复完成之后并move,将文件属主改掉,最后进行recover
?
?
?
?
或者使用lsof命令进行查看,然后进行copy:
?
直接copy 相关文件即可,该操作更为简单:
?
总的来说,对于文件从操作系统级别删掉的情况,如果inode在未被覆盖之前,都是可以恢复,一旦覆盖就难以恢复了,
所以我们建议,一旦有文件被删掉,那么建议将该文件系统umount掉,以免信息被覆盖。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 数据库 如何