oracle数据文件误删除以后的处理办法

00:13:17 kiwi@prod> select * from cat;

TABLE_NAME TABLE_TYPE

------------------------------ -----------

TEST TABLE

[root@kiwi prod]# ls 
control01.ctl control02.ctl example01.dbf kiwi01.dbf redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf

[root@kiwi prod]# rm -rf kiwi01.dbf 
[root@kiwi prod]# ls 
control01.ctl control02.ctl example01.dbf redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf  users01.dbf 


00:13:45 kiwi@prod> drop table test purge; 
drop table test purge 
* 
ERROR at line 1: 
ORA-01116: error in opening database file 6 
ORA-01110: data file 6: '/u02/oradata/prod/kiwi01.dbf' 
ORA-27041: unable to open file 
Linux-x86_64 Error: 2: No such file or directory 
Additional information: 3


[00:15:45 root()@kiwi fd]# ll
total 0
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 0 -> /dev/null
l-wx------ 1 oracle oinstall 64 Dec 26 00:15 1 -> /dev/null
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 10 -> /dev/zero
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 11 -> /dev/zero
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 12 -> /u01/app/oracle/product/11.2.0/db/dbs/hc_prod.dat
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 13 -> /u01/app/oracle/product/11.2.0/db/rdbms/mesg/oraus.msb
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 14 -> /proc/7401/fd
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 15 -> /dev/zero
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 16 -> /u01/app/oracle/product/11.2.0/db/dbs/hc_prod.dat
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 17 -> /u01/app/oracle/product/11.2.0/db/dbs/lkPROD
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 18 -> /u01/app/oracle/product/11.2.0/db/rdbms/mesg/oraus.msb
l-wx------ 1 oracle oinstall 64 Dec 26 00:15 2 -> /dev/null
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 256 -> /u02/oradata/prod/control01.ctl
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 257 -> /u02/oradata/prod/control02.ctl
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 258 -> /u02/oradata/prod/system01.dbf
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 259 -> /u02/oradata/prod/sysaux01.dbf
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 260 -> /u02/oradata/prod/undotbs01.dbf
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 261 -> /u02/oradata/prod/users01.dbf
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 262 -> /u02/oradata/prod/example01.dbf
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 263 -> /u02/oradata/prod/kiwi01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 264 -> /u02/oradata/prod/temp01.dbf
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 3 -> /dev/null
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 4 -> /dev/null
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 5 -> /dev/null
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 6 -> /dev/null
lrwx------ 1 oracle oinstall 64 Dec 26 00:15 7 -> /u01/app/oracle/product/11.2.0/db/dbs/hc_prod.dat
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 8 -> /dev/null
lr-x------ 1 oracle oinstall 64 Dec 26 00:15 9 -> /dev/null

00:14:54 kiwi@prod> select checkpoint_change# from v$datafile_header; 

CHECKPOINT_CHANGE# 
------------------ 
1088766 
1088766 
1088766 
1088766 
1088766 
1088766 

6 rows selected. 

Elapsed: 00:00:00.01 
00:17:17 kiwi@prod> select checkpoint_change# from v$datafile; 

CHECKPOINT_CHANGE# 
------------------ 
1088766 
1088766 
1088766 
1088766 
1088766 
1088766 

6 rows selected.


23:49:28 kiwi@prod> conn / as sysdba 
Connected. 
23:49:42 sys@prod> 
23:49:42 sys@prod> alter database datafile 6 offline; 

Database altered. 

Elapsed: 00:00:00.10 
23:49:51 sys@prod> recover datafile 6; 
Media recovery complete. 
23:49:57 sys@prod> alter database datafile 6 online; 


至此,完成误删除无备份的恢复

这个是利用操作系统文件描述符的方法来进行数据文件的恢复
在操作系统中,内核利用文件描述符在访问文件。在linux系统中,误删除文件以后,虽然该数据文件已经从操作系统中删除了,但是其文件句柄仍有数据库打开并持有,所以才数据库层面并不会释放其链表信息。因而也就能够从进程的地址信息中,通过复制将其直接恢复:
但我们要注意:
数据的关闭offline都会使其文件句柄被释放 ,文件就很难被找回了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值