如果EXT4文件系统上的ORACLE数据文件被误删除了,那么一般可以考虑下面2种恢复方式:
关于prmscan 可以参考文档:http://www.askmaclean.com/archives/prmscan-oracle%E7%A2%8E%E7%89%87%E6%89%AB%E6%8F%8F%E5%90%88%E5%B9%B6%E5%B7%A5%E5%85%B7.html
这里我们介绍使用testdisk的恢复ext4上数据文件的步骤:
[oracle@dbdao01 ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 990G 14G 925G 2% / /dev/sda1 99M 23M 71M 25% /boot tmpfs 2.0G 976M 1.1G 49% /dev/shm /dev/sdb1 20G 3.2G 16G 17% /home/oracle/oradata [root@dbdao01 ~]# rm -rf /home/oracle/oradata/auchan/users01.dbf SQL> select object_name,object_id,data_object_id from dba_objects where object_name='TORDER'; OBJECT_NAME OBJECT_ID DATA_OBJECT_ID --------------- ---------- -------------- TORDER 14162 14162 SQL> select count(*) from auchan.torder; COUNT(*) ---------- 91982 SQL> select object_name,object_id,data_object_id from dba_objects where object_name='TT'; OBJECT_NAME OBJECT_ID DATA_OBJECT_ID --------------- ---------- -------------- TT 14205 14205 SQL> select count(*) from auchan.tt; COUNT(*) ---------- 16383
TESTDISK测试
上传TESTDISK软件并解压安装
[root@dbdao01 ~]# mkdir -p testdisk [root@dbdao01 testdisk]# ls -l total 2740 -rw-r--r-- 1 root root 2801512 Apr 4 19:44 testdisk-6.14.linux26.tar.bz2 [root@dbdao01 testdisk]# tar -xf testdisk-6.14.linux26.tar.bz2
卸载掉数据被删的磁盘,防止被覆盖
[root@dbdao01 ~]# umount -l /home/oracle/oradata [root@dbdao01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 990G 13G 927G 2% / /dev/sda1 99M 23M 71M 25% /boot tmpfs 2.0G 492M 1.5G 25% /dev/shm
使用testdisk进行恢复
[root@dbdao01 testdisk-6.14]# ./testdisk_static
点击CREATE创建日志
选择要恢复的文件所在的磁盘
这里选择默认
选择Advanced
选择List
找到要恢复的文件,按C复制
将文件粘贴到其他磁盘上
[root@dbdao01 auchan]# ls -ll
total 1360700
-rw-r—– 1 root root 1391992832 Apr 6 2015 users01.dbf
非字典模式