今天在一片文章中看到LOG SEQUENCE NUMBER,网上大概搜索了一下,可惜未果。
不知其具体含义与用途,在恢复时用的到吗?和SCN有什么关系没?希望大家指点一二。
不知其具体含义与用途,在恢复时用的到吗?和SCN有什么关系没?希望大家指点一二。
解决方案 »
- 如果设置oracle11R2里的某个用户密码永久不过期?
- 在oracle 11g关于group by语句的用法?
- 请问这个存储过程为什么不取默认值?
- sqlplus命令的问题
- 关于ORACLE时间的基础知识,求助
- 请问各位大虾,我现有一个oracle7.3生成的DMP文件,可以导入到oracle8.16中或是用oracle8.16的IMP工具吗?(在线求助)
- Ref 游标是什么?与普通游标有什么区别?
- 有没有项access里的‘联接’ 一样的东西阿?要通过odbc联接的??
- 用JSP网站连的数据库是sun Solaris操作系统中的Oracle,WEB服务器是Oracle自带的ias服务器,当程序连接数据库操作一会儿数据库就死了,急
- oracle 存储过程 游标 数据
- 今天突然在想,ORACLE是怎么进行UNDO的?
- oracle10g的用户名密码
那么SCN 怎么和log sequence number 对应呢?
我总在想,如果某个SCN对应的起始点是在 redo log file的中间某一处,
而不是说刚好就是一个完成的 redo log file的结尾处。
那系统恢复的时候怎么去判断呢?因为log sequence number 是针对每个redo log file
的,而不是针对每一次LGWn 写入的,???? 如何才能找到REDO LOG FILE中的某个点呢?
2> TIMESTAMP, DICT_BEGIN, DICT_END, THREAD# FROM DBA_LOGSTDBY_LOG
3> ORDER BY SEQUENCE#;
对应关系是知道了
只是还不太了解在恢复的过程中LOG SEQUENCE NUMBER到底起了什么样的作用
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。
我之后也找了一些文档看了看,觉得像我说的那种恢复的情况,log sequence number主要的作用是定位于redo log并且更加sequence的顺序方便找出需要的redo file的。至于精确的那个需要开始恢复的点,还是要靠CHECKPOINT SCN来找出来的。