解决方案 »

  1.   

    这里不是说了么
     The first set opens
    -- the database with the NORESETLOGS option and should be used only if
    -- the current versions of all online logs are available. The second
    -- set opens the database with the RESETLOGS option and should be used
    -- if online logs are unavailable.第一种,以noresetlogs方式打开,是在所有的在线日志可用的情况下,否则(redo日志出现了损坏)要以resetlogs的方式打开具体的官方解释:
    RESETLOGS
    resets the current log sequence number to 1 and invalidates all redo entries in the online and archived redo log files. You must use this option to open the database after performing media recovery with a backup controlfile. After opening the
    database with this option you should perform. a complete database backup.NORESETLOGS
    leaves the log sequence number and redo log files in their current state.即,如果使用resetlogs的方式,会截断日志,将当前的日志序列重置为1,并使所有原来的在线和归档日志失效。
      

  2.   

    哦 明白了 就是resetlogs的方式打开可能会丢失数据
      

  3.   

    如果数据库文件状态一致,不会丢失数据。但是此时将没有可用的归档或联机日志用于恢复数据库。因此在以resetlogs方式打开数据库以后,建议进行一次完全备份
      

  4.   

     当redo异常的时候我们采用 noresetlogs打开数据库是一定会丢失数据的吧
      

  5.   

    这要看数据库文件是否一致。如果正在使用的日志出现不可修复的异常,且数据库处于不一致(关闭)的状态,则需要从备份中恢复且以resetlogs方式打开
    如果一致,则不会丢失数据
      

  6.   

    现在我这边有个数据库断电后一直起不来 是CURRENT状态下的redo异常 如何打开数据库才不会丢失数据呢
      

  7.   

    还可以通过设置隐含参数"_allow_resetlogs_corruption"=true,并resetlogs来启动数据库
    但是并不推荐
    注意备份
      

  8.   

    noresetlogs 是不将日志清空,也就是说,你的onlinelog必须要完整的,没有错误的。 不然,无法打开数据库。 
    resetlogs 是将日志组清空,重新开始日志计数。  这个时候 以前做过的备份 就无效了,需要重新做备份。 noresetlogs创建了控制文件也没关系, 等到你alter database open  提示无法打开,需要用resetlog的时候 再执行
    alter database open resetlogs;就行了