各位高手,我建立了3个表空间文件,在数据库关闭事把这3个文件删除了,结果数据库无法打开。于是我把这3个文件设置为offline,数据库可以正常启动。我从一本书上读到,这样的情况还可以恢复,步骤如下:
1.startup mount 
2.alter database datafile 'file' offline
3.alter database open
4.重新生成一个与原文件大小、路径相同的数据文件。
5.recover datafile 'file'
6.alter database datafile 'file' online这几步里面第4步我死活搞不动什么意思,如何重新生成。是新建吗,不是,因为新建同名表空间文件会出错,是用其他oracle例程创建一个同名同大小表空间文件吗,我试过了,不行。拿到底是什么意思呢?急死我了,请各位大侠帮忙,定高分相赠,并万分感激!!!

解决方案 »

  1.   

    就是为已经损坏的数据文件重新创建一个新的,空白的数据文件.
    SQL> alter database create datafile
     2   'i:\ora9i\oradata\users01.dbf' AS
     23  'i:\ora9i\oradata\users01.dbf';
    然后对空白的数据文件进行介质恢复.就是第五步
      

  2.   

    执行过后 oracle还会对数据字典和控制文件进行更新,是它们包含新的数据文件的信息
      

  3.   

    多谢 zhaokeke2004(/ ***** 大力·I.A.M *****/) 指点,我试试。
      

  4.   

    to zhaokeke2004(/ ***** 大力·I.A.M *****/) 
    请教:这种情况下的恢复成功,是否需要从最初创建到最终删除该文件之间的所有日志呢?
    谢谢!
      

  5.   

    To daydayupliq(强强) 如果数据文件由于介质故障而损坏,但是又没有对它进行备份,这时如果满足如下条件,仍然可以进行恢复
    1.自从这个数据文件创建后,生成的所有归档重做日志文件都存在.
    2.在当前的控制文件中包含有这个数据文件的名称,或者在修复后的控制文件中包含有这个数据文件的名称