今天在一片文章中看到LOG SEQUENCE NUMBER,网上大概搜索了一下,可惜未果。
不知其具体含义与用途,在恢复时用的到吗?和SCN有什么关系没?希望大家指点一二。

解决方案 »

  1.   

    Oracle Database assigns each redo log file a new log sequence number every time a log switch occurs and LGWR begins writing to it. When the database archives redo log files, the archived log retains its log sequence number. A redo log file that is cycled back for use is given the next available log sequence number.Each online or archived redo log file is uniquely identified by its log sequence number. During crash, instance, or media recovery, the database properly applies redo log files in ascending order by using the log sequence number of the necessary archived and redo log files.http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/onlineredo001.htmFYI
      

  2.   

    是不是就是redo log file的编号好archive log list就可以看到了。
      

  3.   

    比如我们现在希望将数据库恢复到一个SCN,(我记得好像可以这样恢复,但是具体不记得了),
    那么SCN 怎么和log sequence number  对应呢?
    我总在想,如果某个SCN对应的起始点是在 redo log  file的中间某一处,
    而不是说刚好就是一个完成的 redo log file的结尾处。
    那系统恢复的时候怎么去判断呢?因为log sequence number  是针对每个redo log file 
    的,而不是针对每一次LGWn 写入的,???? 如何才能找到REDO LOG FILE中的某个点呢?
      

  4.   

    SCN和log sequence number的对应关系在这里SQL> SELECT FILE_NAME, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE#,
    2> TIMESTAMP, DICT_BEGIN, DICT_END, THREAD# FROM DBA_LOGSTDBY_LOG
    3> ORDER BY SEQUENCE#;
      

  5.   

    谢谢
    对应关系是知道了
    只是还不太了解在恢复的过程中LOG SEQUENCE NUMBER到底起了什么样的作用
      

  6.   


    redo log文件的相关视图是v$log_history,v$log和v$loghist, 个人觉得log sequence number和scn是两个完全不同的概念,log sequence number是oracle里对redo文件切换的一个序号,针对于redo switch
    而scn是system change number, 是系统改变的序号,对于一个发生system change的时间点, 是正对于oracle数据库系统的一个改变,比如数据修改,一个alter语句等等,这两个概念名词本身并没有关系的,不过,如你所知的,在一个reodo file需要进行switch的时候,这里通常是发生了一系列的scn的变化的,在这里当发生日志切换的时候,oracle体系会拿到下一个redo file,然后记录写入当前联机日志的最后一个日志块的scn, 也就是last_change,然后关闭当前这个redo file,拿到下个并打开下个至于current,并增加log seqence,记录scn记录第一个日志块 所以虽然名词上没有关系,但是对于一个log number的增加,其实里面是有着一段scn的改变的, 所以这里他们的关系,只能描述为一个log sequence number的变化,通常包含了很多scn的变化。至于你说到的恢复的问题的话, 主要还是check的scn,而这里log sequence number主要的作用是定位于redo log并且更加sequence的顺序方便找出需要的redo file的,当数据库异常关闭,data buffer里的数据还没有来的及写入datafile的话,这时候就是需要恢复的,那么恢复的过程简而言之的话就是根据发生发生故障的scn,找到需要开始的redo log的日志段,根据redo日志段里的信息。执行redo,一致到你取得cancel或者找不到更新的redo。 
      

  7.   

    谢谢你的回答。
    我之后也找了一些文档看了看,觉得像我说的那种恢复的情况,log sequence number主要的作用是定位于redo log并且更加sequence的顺序方便找出需要的redo file的。至于精确的那个需要开始恢复的点,还是要靠CHECKPOINT SCN来找出来的。