log sequence number 是针对 redo log group 这一级的?也就是说在同一个redo log group 中的记录 都是归属与一个log sequence number 的?
  那么 oralce是怎么利用log sequence number  来恢复 的?

解决方案 »

  1.   

    没错同一个log group中的都一个级的,也就是他们所代表的sequence number也都是一样的,一组设多个主要是为防止单文件损坏,与多个控制文件是同样的道理。oracle是通过scn号来确定各个文件的状态的,假定控制文件是最新的,某一个datafile的scn号比控制文件中的这个文件的scn号小,说明这个文件需要恢复,这样v$recover_file这个视图就会多出一个记录,其中的change#代表的也就是这个文件需要恢复的起始号。oracle同时就会比对v$log中的v$first_chage#及联合v$loghist等这些视图确定恢复所需的日志文件及归档日志文件,从而进行恢复。
      

  2.   

    startup mount看 select checkpoint_change#,last_change# from v$datafile;
          checkpoint_change#,last_change# 此时不同 last_change#为空  那实列恢复   select a.checkpoint_change#,b.checkpoint_change# from v$datafile a,v$datafile_header b;
          a.checkpoint_change#,b.checkpoint_change# 此时不同 介质恢复 
        根据b.checkpoint_change# 的scn 决定介质恢复的开始 a.checkpoint_change#决定介质恢复的结束   在controlfile中的 v$loghist 的信息 SEQUENCE# ,FIRST_CHANGE#,SWITCH_CHANGE# 记录了 log sequence number 和归档日志的信息
      

  3.   

    hrb_qiuyb(晨钟暮鼓)  l2g32003(leeshow) ( ) ,
      谢谢两位