这可能是部分刚接手的运维人员 或者代维人员所要遇到的问题, 一个老的数据库只剩下DBF文件了,要如何恢复其中的数据?
其实这个问题 分成好多种情况,请自行对号入座:
1)数据库所有的DBF文件都在,没有缺失,也没有损坏
这个情况是最简单的 自己建一个参数文件INIT.ORA,并基于这些DBF文件去创建控制文件,然后尝试打开数据库即可。如果说数据文件都是干净的CLEAN的,那么直接可以打开。如果数据文件是DIRTY的,这里由于没有REDO LOG了,所以需要以隐藏参数等方式打开数据库。
2) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,没有损坏
这种情况在 1)的基础上将缺失的数据文件OFFLINE DROP掉就好了,因为对应的数据文件都没了,那么丢了对应数据文件上的数据也很正常
3) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,非SYSTEM01.dbf的数据文件有少量损坏
这种情况在 2)的基础上打开数据库问题并不大,但打开数据库后 由于其他表空间数据文件上有少量损坏,所以具体访问用户数据时可能出现ORA-1578、ORA-8103、ORA-1410、ORA-00600等错误,还是比较容易克服的
4) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,SYTEM01.DBF有损坏
这种情况下打开数据库就不容易了,可能需要用到BBED技术去修改SYSTEM01.DBF,以便才能打开数据库
5) 只有部分DBF,其中还缺失了SYSTEM01.DBF
这种情况不要指望能打开数据库,只能使用PRM-DUL之类的软件 来直接抽取数据
以上情况1)~4) 只要SYSTEM01.DBF还在或者损坏的不是太严重,那么都可以由专业技术人员去打开数据库后导出数据,但是在情况5)下只能使用DUL类工具去抽取数据了。
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队