今天我把某表空间误删了,请问如何恢复?
1.没有备份过。
2.Ora文件还在。
3.服务器没有重启过。某位同事居然还能看到该表空间内的内容,但是我最关心的数据表已经找不到了。
4.Oracle版本9.2。

解决方案 »

  1.   

    先用文件恢复工具恢复(如果删除后硬盘写操作较少,又比较走运的话),然后就可以在建表空间的时候指向那个文件,加reuse就OK了,这是8i里面的语法,但9i也支持。
      

  2.   

    system表空间是不可以脱机(offline)的,该表空间的数据文件也是不可以脱机的,
    也就是说,如果system表空间的数据文件被误删除了,那么必须关闭数据库(shutdown abort),
    而后在mount之后open之前对system表空间的数据文件(而不是表空间)进行物理恢复.必要的恢复文件:
    .归档和联机的重做日志文件
    .当前的控制文件
    .system表空间数据文件的(冷或热)备份
    恢复步骤:
    ------------------------------------------------
    SQL>;shutdown immediate
    ORA-01122: datafile file 1 failed verification check
    ORA-01110: data file 1: '/oracle/oradata/ora/system01.dbf'
    ORA-01208: data file is an old version - not accessing current versionSQL>; shutdown abort
    ORACLE instance shut down.SQL>; startup
    ORACLE instance started......
    .....
    Database mounted.
    ORA-01113: file 1 needs media recovery
    ORA-01110: data file 1: '/oracle/oradata/ora/system01.dbf'
    SQL>; recover datafile '/oracle/oradata/ora/system01.dbf';
    Media recovery complete;SQL>;alter database open;
    Database altered.SQL>;