love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

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

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: Linux中如何恢复被误删的数据文件?

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掉,以免信息被覆盖。

One Response to “Linux中如何恢复被误删的数据文件?”

  1. Roger Says:

    这是数据库恢复课程中比较简单的一个知识点,分享一下。

Leave a Reply

You must be logged in to post a comment.