各位大侠:
    我的数据库还正常,只是不小心误删了一个应用的表空间,但我有这个误删表空间的.dbf数据文件。现我在数据库下重新建一表空间,能利用误删表空间的dbf文件把数据恢复吗?    急啊。谢谢。
    

解决方案 »

  1.   


    只能通过备份来恢复,如果没有备份,就无法恢复。 你的数据文件是怎么删掉的,数据库在打开的时候是无法删除数据文件的。
    数据文件头里保存了最新的SCN。 这个和控制文件里的保持一致时才能正常启动。 如果直接恢复,数据库是启动不了的。 ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  2.   

    是这样的。我的数据库安装在本地硬盘上,表空间的数据文件保存在SAN上,前段时间san卡有问题,同事在san没连上的情况下把表空间给删掉了。所以现在数据库在,只剩下san下的dbf文件。
    请问:恢复有办法吗?
      

  3.   


    闪回是有限制的, Flashback Database 的前提是数据文件必须存在,如果不存在,就要先用RMAN restore 出数据文件,然后才能进行Flashback Database。 Flashback Database 默认也是关闭的,需要启动后才行。Oracle Flashback 技术 总结
    http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4677378.aspx
      

  4.   

     oracle 9i 表空间误删除的恢复方法
    日志。
    Errors in file /opt/ora9/admin/xwoa/udump/xwoa_ora_17933.trc:
    ORA-01115: 从文件 16 读取块时出现 IO 错误 (块 # 189544)
    ORA-27072: skgfdisp: I/O 错误
    Linux Error: 25: Inappropriate ioctl for device
    Additional information: 189543
    靠,数据表空间文件被删除。
    好在数据库采用了归档模式。
    开始恢复:
     1、SQL>shutdown immediate
    备份全部数据文件和控制文件和log以防恢复过程中出现问题。
    2、SQL> startup mount;
    3、SQL> alter database create datafile '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf'    as '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf'  reuse;
    创建误删除的数据文件。
    4、recover datafile '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf';ORA-00279: 更改 57900012 (在 09/19/2007 10:27:05 生成) 对于线程 1 是必需的
    ORA-00289: 建议: /opt/ora9/oradata/xwoa/archive/1_863.dbf
    ORA-00280: 更改 57900012 对于线程 1 是按序列 # 863 进行的
    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
    输入:AUTO回车
    开始恢复过程,这个时间比较长。5、SQL> select d.file#,d.name,d.status,h.status from v$datafile d,v$datafile_header
     h where d.file#=h.file# ;
    查看一下数据文件是否online。
    如果没有online,
    6、SQL> ALTER DATABASE DATAFILE '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf' ONLINE;
    ok!完成恢复过程。