Oracle Scn 定义

本帖最后由 mlx_861201 于 2013-3-16 13:31 编辑

Oracle  Scn  定义

SCN: oracle system change number.表示oracle 系统改变号。

SCN是一个由之间转换过来的数字,可以通过下列语句转换SCN和具体时间。

SELECTDBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER,

SCN_TO_TIMESTAMP(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER)FROM DUAL;

常见的SCN

SCN遍布数据库的每一个角落。下面列举几个常见和重要的SCN。

  

SCN名称

  

存在位置



获得方式



备注



系统检查点SCN



控制文件



视图/控制文件



一个数据库一个



文件检查点SCN



控制文件



视图/控制文件



一个文件一个



文件最终检查点SCN



控制文件



视图/控制文件


一个文件一个



文件头部检查点SCN



数据文件



视图/数据文件头



一个文件一个



RedoFile文件开始SCN



RedoFile



视图/RedoFile头



一个文件一个



RedoFile文件结束SCN



RedoFile



视图/RedoFile头



一个文件一个



RedoLog条目的SCN



RedoFile



视图/RedoFile条目



一个条目一个



1、系统检查点SCN(控制文件数据库条目)

可以通过查询视图获得系统检查点SCN值,该值保存在控制文件中,SELECT CHECKPOINT_CHANGE# FROM V$DATABASE; 表示的是LAST SCNCHECKPOINTED。

可以通过dump出控制文件进行查看:ALTERSESSION SET EVENTS 'IMMEDIATE TRACE NAME CONTROLF LEVEL 12'。

2、文件检查点SCN(控制文件数据文件条目)

         可以通过查询视图获得文件检查点SCN值,该值保存在控制文件中,SELECTNAME,CHECKPOINT_CHANGE# FROM V$DATAFILE;

可以通过dump出控制文件进行查看:ALTERSESSION SET EVENTS 'IMMEDIATE TRACE NAME CONTROLF LEVEL 12'。

3、文件最终检查点SCN(控制文件数据文件条目)

        可以通过查询视图获得文件最终检查点SCN值,该值保存在控制文件中,SELECTNAME,LAST_CHANGE# FROM V$DATAFILE;改值在数据库启动时设置为无穷大,该值在数据库正常关闭的情况下设置为关闭时的SCN,非正常关闭依旧为无穷大。

4、数据文件头部的检查点SCN(数据文件头)

         可以通过查询视图获得文件检查点SCN值,该值保存在数据文件头部,SELECT NAME,CHECKPOINT_CHANGE# FROM V$DATAFILE_HEADER。也可以通过dump数据文件头块进行查看。

5RedoFile文件开始SCN

表示切换到该日志文件的时间点,可以通过查询视图获得文件RedoFile文件开始SCN,该值保存在数据文件头部,SELECT FIRST_CHANGE# FROM V$LOG; 也可以通过dump redoFile文件头块进行查看。当前redoFile的开始SCN就是上一个redoFile的的结束SCN。

6RedoFile文件结束SCN

表示切换到下一个日志文件的时间点,可以通过查询视图获得文件RedoFile文件开始SCN,该值保存在数据文件头部,SELECT NEXT_CHANGE# FROM V$LOG; 也可以通过dump redoFile文件头块进行查看。当前redoFile的结束SCN就是下一个redoFile的的开始SCN。

7RedoLog条目的SCN

         表示redo条目对应数据库被修改时间点的CSN

各检查点之间关系

1、数据库正常关闭和启动时,控制文件的系统SCN、控制文件中的数据文件开始SCN和数据文件头部的开始SCN是相等的,文件的最终检查点SCN是无穷大。

2、正常关闭数据库,oracle会做下列操作。

         A、将所有的buffer cache写到磁盘上。

         B、用关闭的时间点SCN更新系统SCN、文件检查点SCN、文件最终检查点SCN、数据文件头部检查点SCN。此时4中SCN的值相同。

3、数据库非正常关闭(abort),数据库不做写buffercache操作和更新SCN操作。此时文件最终检查点依然为空,数据库需要进行实例恢复。数据库在open的过程中,从控制文件的检查点条目中的每个检查点队列中取得LRBA(检查点队列中第一个脏块的LRBA)和ON DISK RBA(对应REDO FILE的最后一条redolog 条目),然后从LRBA跑日志到ON DISK RBA。

4、数据库正常关闭,用一个备份的数据文件覆盖其中一个数据文件,此时数据文件头部的检查点SCN小于控制文件中的“文件检查点SCN”,此时就需要进行介质恢复。

操作对SCN号的影响

操作是否刷新SCN号码

  

SCN\操作

  

日志切换



全量检查点



正常关闭



增量检查点



刷新缓存


offline



系统检查点SCN



×/







×






×

文件检查点SCN



×/







×






×

文件最终检查点SCN



×



×





×



×



×


文件头部检查点SCN



×/







×





√(表空间对应数据文件)


日志文件开始SCN





×



×



×



×



×


日志文件结束SCN





×



×



×



×



×

  

RedoLog条目SCN

  

×



×



×



×



×



×

注:1、曾量检查点会更新控制文件checkpoint 条目的LRBA值。不会改变SCN

      2、日志切换,假如切换之后将active类型的日志文件切换为inactive,则会更新系统检查点SCN、文件检查点SCN和文件头部检查点SCN

      3、全量检查点会将buffercache全部写到内容,所以日志状态会发生变化,所以会改变系统检查点CSN


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11693228/viewspace-1061078/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11693228/viewspace-1061078/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值