oracle数据文件误删除以后的处理办法
2014-12-25 16:36
477 查看
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都会使其文件句柄被释放 ,文件就很难被找回了
相关文章推荐
- 异常删除oracle数据文件的处理办法
- Oracle回滚表空间数据文件误删除处理
- oracle数据文件被误删除后的灾难处理方法
- oracle数据文件被误删除后的灾难处理方法
- 【ORACLE】删除表空间,没有删除数据文件怎么办?解决办法
- Oracle回滚表空间数据文件误删除处理
- 误删除ORACLE数据文件后的处理方式
- oracle 10.2.0.1.0 误删除数据文件 后的处理方法
- Oracle回滚表空间数据文件误删除处理
- Oracle因删除库数据文件导致服务无法启动的处理方法
- 意外删除Oracle数据文件(dbf),恢复oralce库的解决办法--Oracle错误代码:ORA-01033
- Oracle回滚表空间数据文件误删除处理
- oracle数据文件强制删除导致无法启动的解决办法
- oracle数据文件被误删除后的灾难处理方法
- oracle数据文件被误删除后的灾难处理方法
- oracle删除数据文件 解决办法
- oracle数据文件被误删除后无法启动数据库的解决办法
- Oracle回滚表空间数据文件误删除处理
- 缩小数据文件尺寸报ORA-03297的处理办法
- oracle误用操作系统命令删除数据文件的恢复方法