只有DBF文件的情况下做Oracle 数据恢复
1)数据库所有的DBF文件都在,没有缺失,也没有损坏
这个情况是最简单的 自己建一个参数文件INITORA,并基于这些DBF文件去创建控制文件,然后尝试打开数据库即可。如果说数据文件都是干净的CLEAN的,那么直接可以打开。如果数据文件是DIRTY的,这里由于没有REDO LOG了,所以需要以隐藏参数等方式打开数据库。
2) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,没有损坏
这种情况在 1)的基础上将缺失的数据文件OFFLINE DROP掉就好了,因为对应的数据文件都没了,那么丢了对应数据文件上的数据也很正常
3) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,非SYSTEM01dbf的数据文件有少量损坏
这种情况在 2)的基础上打开数据库问题并不大,但打开数据库后 由于其他表空间数据文件上有少量损坏,所以具体访问用户数据时可能出现ORA-1578、ORA-8103、ORA-1410、ORA-00600等错误,还是比较容易克服的
4) 数据库DBF有少量缺失,缺失主要是非SYSTEM01DBF的数据文件,SYTEM01DBF有损坏
这种情况下打开数据库就不容易了,可能需要用到BBED技术去修改SYSTEM01DBF,以便才能打开数据库
5) 只有部分DBF,其中还缺失了SYSTEM01DBF
这种情况不要指望能打开数据库,只能使用PRM-DUL之类的软件 来直接抽取数据
以上情况1)~4) 只要SYSTEM01DBF还在或者损坏的不是太严重,那么都可以由专业技术人员去打开数据库后导出数据,但是在情况5)下只能使用DUL类工具去抽取数据了。
启动dos命令窗口 然后按下面的 *** 作\x0d\sqlplus /nolog\x0d\conn sys/orcl as sysdba;\x0d\alter database open;\x0d\当 *** 作完成上面的 *** 作就会报ORA-01157: cannot identify/lock data file 9 XXXDBF就是你误删除的那个文件。然后你执行下面的 *** 作。\x0d\alter database datafile 'd:\XXXDBF' offline drop;\x0d\alter database open;
system/sysaux/undo这些系统表空间是不能删的;
你要确定哪些table是有用的,比如table_name like 'W%'等;
筛选出有数据的表空间,比如select tablespace_name from dba_tables where table_name like 'W%' group by tablespace_name order by 1;
把那些不在第1、3步中的表空间名字记下来;
确定无用的数据文件,比如select file_name, tablespace_name from dba_data_files where tablespace_name in ();
先把数据文件offline,然后再删除,大功告成。
以上就是关于oracle的dbf文件如何把数据导出来全部的内容,包括:oracle的dbf文件如何把数据导出来、oracle数据库表空间中DBF文件被删除后无法登录怎么解决、如何删除Oracle下无用的Dbf文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)