回滚可以向后,也可以向前,哪些情况下会需要向前回滚呢?

解决方案 »

  1.   

    forward-rollback,应该发生在,数据库启动的时候,进行recovery的时候。
    由于异常的shutdown,下一次startup的时候,
    SMON监测到在redolog中有,但是没有保存到数据文件中,会采取forward-rollback,就是在作一次。此时,oracle会区分是否有commit,只有commit的才会执行,否则,oracle采取的是丢弃。
      

  2.   

    前滚是在恢复数据时才用得到,是指利用REDO LOG进行重做,恢复丢失的数据。
    在实例坏掉的时候(如操作系统崩溃、机器掉电等),重启ORACLE,自动恢复ORACLE实例时,也有前滚的动作,是自动进行的。