解决方案 »

  1.   

    _CORRUPTED_ROLLBACK_SEGMENTS(corrupted undo segment list)隐藏参数所独有的功能:
    ◾在实例启动startup并open database的阶段_CORRUPTED_ROLLBACK_SEGMENTS所列出的undo segments(撤销段/回滚段)将不会被访问读取
    ◾所有指向这些被_CORRUPTED_ROLLBACK_SEGMENTS列出的undo segments的事务都被认为已经提交了commit,和这个undo segments已经被drop时类似 ◾这将导致严重的逻辑讹误
    ◾如果数据字典上有活跃事务那么将更糟糕,数据字典逻辑讹误会造成数据库管理问题
    ◾如果bootstrap自举核心对象有活跃事务,那么将无法忽略错误ORA-00704: bootstrap process failure错误,导致无法强制打开数据库(见拙作Oracle数据恢复:解决ORA-00600:[4000] ORA-00704: bootstrap process failure错误一例)◾衷心地建议用_CORRUPTED_ROLLBACK_SEGMENTS这个参数打开数据库后导出数据并重建数据库,这个参数使用的后遗症可能很顽固
    ◾Oracle公司内部有叫做TXChecker的工具可以检查问题事务
    查了些资料,是不是用_CORRUPTED_ROLLBACK_SEGMENTS这个参数 
    在open的时候undo segments(撤销段/回滚段)将不会被访问读取
    这个过程是不是就叫做 使用隐含参数屏蔽前滚,然后强制拉库。
      

  2.   

    如果数据库允许丢失部分数据的话,直接  recover database until cancel;alter database open resetlogs;
    不过事前先做好拷贝。 
      

  3.   

    _ALLOW_RESETLOGS_CORRUPTION  不检查一致性的打开,试试这个参数