系统构成:    
   现有一台工控机做数据库服务器(Oracle815),兼做web服务器(asp.net,企业局域网),
操作系统装在C:
Oracle装在D:\Oracle\(没有归档)
数据文件装在D:\ora\、E:\ora\ ...故障过程:
   于几天前在客户端,通过IE浏览器调用一个存储过程,IE超时报错,数据库不能访问,两小时后,到机房重启该工控机后,马上通过IE浏览器访问数据库,显示ODBC出错,接着又重启计算机,在Windows 2000进度条结束后,系统出现蓝屏,提示“....physical memory dump .....”后,多次重启计算机,一直不成功。处理过程:
   用一块新硬盘安装操作系统、Oracle
   拷贝原来硬盘里的D:\Oracle文件夹 
   拷贝原来硬盘里的D:\Ora\和E:\Ora\
   .......发现问题:
   1.在拷贝原来硬盘里的数索引段数据文件和回滚段数据文件时,报错“数据错误(循环冗余检查)”不能拷贝这两个文件,只有原始记录数据文件和临时表空间数据文件可以拷贝。
   2.原来硬盘D:\Oracle文件夹里丢失“OraData”文件夹, 丢失了控制文件,日志文件,系统表空间......
   3.警告日志里记载最近的时间是“Mon Aug 02 08:12:05 2004”.....
请教高手:
      原来的硬盘已经带回来了,根据目前的情况,能把原始记录数据文件里的数据恢复出来吗?怎样恢复?非常急的!!!请高手帮忙!!
若能恢复,有重谢!!

解决方案 »

  1.   

    如果出現了這樣的錯,一般來說是不行了。
    我也恢復了好幾十個ORACLE数据库了,但这样的情况还比较少见。
    因为系统文件都不行了。就一切都没有戏了。
      

  2.   

    根据你的情况,如果其他的文件没有损坏,应该还可以恢复,1。安装新的数据库,(实例和目录结构相同d:\oracle),关闭数据库拷贝原来的文件覆盖现在的文件,拷贝原来硬盘里的D:\Oracle文件夹 
       拷贝原来硬盘里的D:\Ora\和E:\Ora\2。启动数据库c:\svrmgrlsvrmgrl>connect internal
    svrmgrl>startup mount
    svrmgrl>alter database datafile 'D:\ora\索引段数据文件' offline drop;
    svrmgrl>alter database datafile 'D:\ora\回滚段数据文件'   offline drop;
    svrmgrl>alter database open;
    删除索引和回滚段表空间,然后重新建立。前提是数据文件,日志文件,控制文件没有损坏(除了索引段数据文,回滚段数据文件),其他的产品不需要
      

  3.   

    天佑我也!!
    刚刚恢复了数据!我今早才发现在c:\下居然有一个'新建文件夹'里面才是真正的Oracle-old,
    很纳闷,怎么会多出一个Oracle-old没有人建过。查看告警日志,哈哈!正是发生故障的Oracle数据库............
    Thread recovery: start rolling forward thread 1
    Recovery of Online Redo Log: Thread 1 Group 1 Seq 8541 Reading mem 0
      Mem# 0 errs 0: E:\ORACLE\ORADATA\HCGB\REDO04.LOG
    Fri Mar 25 14:07:06 2005
    ORA-1115 signalled during: alter database open...有了OraData文件夹,我才有了恢复数据的信心,参照LGQDUCKY(飘)的方法,去恢复,虽然出现一
    些小问题但总算被我克服了,哈哈,很激动,这是我第一次做恢复数据的事情,蛮兴奋的......谢谢大家!特别感谢LGQDUCKY(飘)!