表空间有一个数据文件(1号),今日加了两个空的数据文件(2,3),但是当我把数据库offline后删除2,3号文件失败,重新online表空间时,系统提示1号文件 “need media recover”我可以肯定表空间从offline 到online我没有进行任何其他操作,不知为何1号文件会损坏。另外,当尝试 恢复
recover datafile 'c:\oracle9\oradata\db1\data1.ora'
SQL提示该文件不存在?(我肯定路径输入正确)

解决方案 »

  1.   

    用select * from dba_data_files确认一下文件是否存在.
      

  2.   

    确认存在,而且还是把查询结果粘贴下来作为语句参数的。单引号也没问题,肯定是英文符号。后来使用recover datafile 11 用数据文件ID作为参数,问题解除。我猜如果使用文件名,可能要在之前使用startup mount命令。不知对不对。
      

  3.   

    datafile从offline到online确实需要进行介质恢复,以保持数据scn的一致性。
    recover datafile的时候,文件名或文件ID号都可以作用,出现上面的问题,检查一下data1.ora文件是不是包含空格串之类的非法字符。比如下面的操作就可以:
    SQL>conn sys@myoracle as sydba;
    SQL>RECOVER DATAFILE 'D:\ORACLE\ORADATA\MYORACLE\USERS01.DBF';