如果只有归档日志和以前的dmp文件,那归档日志是没有用的,归档日志只有在有文件备份的情况下有用。
你可以把dmp直接导进出就可以了

解决方案 »

  1.   

    如果你有上次冷备份的文件和自该冷备份以来的所有的归档(所有归档都要在),就可以。
    方法:
    1、关闭数据库,再做一次冷备份
    2、拷贝上次冷备份的数据文件回来(仅仅数据文件就够了)
    3、进入控制台srvmgrl(如果是8则是svrmgr30)
    SVRMGR>connect internal/password
    SVRMGR>startup mount;
    SVRMGR>recover database;
      

  2.   

    我试一下先, “penitent(只取一瓢) ”真是热心人
      

  3.   

    好像不行,我将我这里的情况说明一下:
      1、我每天定时作一次冷备份和热备份(通过Exp)
      2、归档日志放在另外独立于数据文件的一个硬盘上现在装有Oracle数据库的硬盘坏了,里面的数据全部丢失,于是我就剩下上一次的冷备份和最新所有的归档日志,我便重新装过Windows2000 Advance Server和Oracle,Oracle的安装路径和实例名和以前完全一致,现在要完全将数据库恢复过来,能行吗?
      

  4.   

    装好Oracle数据库以后,我将以前的冷备份替换调现在的数据库,可以启动,但是我要做的是通过最新的归档日志将我的所有数据恢复过来,到底该怎么办?
      

  5.   

    1、通过Exp备份出来的文件不是冷备份文件。需要的是基于文件备份的冷备份或热备份
    2、Oracle数据库的硬盘坏,那数据文件还能拷贝出来吗?
    3、装好Oracle数据库以后,我将以前的冷备份替换调现在的数据库,可以启动,证明你以前的冷备份没有错。但是,你不要拷贝所有的文件回来,只需要拷贝数据文件回来,再根据归档日志做完全恢复
      

  6.   

    1、我的冷备份是基于文件备份的
    2、Oracle数据库的硬盘坏,我的数据文件是上一次冷备份时留下的,放在另外一个硬盘上
    3、装好Oracle数据库以后,我将以前的冷备份替换调现在的数据库,可以启动,证明你以前的冷备份没有错。但是,你不要拷贝所有的文件回来,只需要拷贝数据文件回来,再根据归档日志做完全恢复,但是你看我的错误信息:
    SQL> startup mount
    ORACLE 例程已经启动。Total System Global Area  101784276 bytes
    Fixed Size                   453332 bytes
    Variable Size              75497472 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 667648 bytes
    数据库装载完毕。
    SQL> recover database
    ORA-00283: 恢复会话因错误而取消
    ORA-00264: 不要求恢复
      

  7.   

    是因为你拷贝了所有的文件回来,系统认为你的scn是一致的,没有必要进行恢复,你的这次硬盘坏了后,可否有这次的日志文件或控制文件否,只要有现在的控制文件或联机日志,当oracle发现scn不一致的时候,就可以用recover database命令了。如果没有的话。
    你还是只能拷贝数据文件回来。(不要拷贝控制文件和联机日志)
    启动到nomount下
    startup niomount
    创建新的控制文件并恢复数据库(如果你以前有基于文本的控制文件备份的话,就直接有脚本了),否则,在nomount下
    看这个能不能运行,如果能运行,就可以得到创建控制文件并恢复数据库的脚本了,脚本在你的跟踪目录下。
    alter database backup controlfile to trace;
      

  8.   

    哦,我明白了一点,不过我对“创建新的控制文件并恢复数据库和alter database backup controlfile to trace”的具体操作不是很清楚,能说的明白一点吗?
      

  9.   

    penitent(只取一瓢),谢谢了,有问题再问你
      

  10.   

    alter database backup controlfile to trace;
    可以得到一个创建控制文件并恢复数据库的脚本。
      

  11.   

    你看我的执行结果:
    SQL> startup nomount
    ORACLE 例程已经启动。Total System Global Area  101784276 bytes
    Fixed Size                   453332 bytes
    Variable Size              75497472 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 667648 bytes
    SQL> alter database backup controlfile to trace;
    alter database backup controlfile to trace
    *
    ERROR 位于第 1 行:
    ORA-01507: ??????
      

  12.   

    这样吧,你把原来的冷备份拷贝过来不是能启动吗?
    用它启动到open状态

    alter database backup controlfile to trace;
    得到建立控制文件和恢复数据库的脚本。
    然后再仅仅拷贝数据文件,启动到nomount下,执行那个生成的脚本即可。
      

  13.   

    我已经成功执行了“alter database backup controlfile to trace;”
      

  14.   

    谢谢“penitent(只取一瓢)”大侠,结贴了。