Oracle SCN及其作用


一、SCN的概念
A system change number (SCN) is alogical, internal timestamp used by Oracle Database. SCNs order events thatoccur within the database, which is necessary to satisfy the ACID properties ofa transaction. Oracle Database uses SCNs to mark the SCN before which allchanges are known to be on disk so that recovery avoids applying unnecessaryredo. The database also uses SCNs to mark the point at which no redo exists fora set of data so that recovery can stop.




1、系统检查点SCN (System Checkpoint SCN):记录于控制文件中,针对于数据库全局,故只存在一个。

    当检查点进程启动时(ckpt),Oracle就把系统检查点的SCN存储到控制文件中。该SCN是全局范围的,当发生文件级别的SCN时,例如将表空间置于只读状态,则不会更新系统检查点SCN。

2、文件检查点SCN (Datafile Checkpoint SCN):记录于控制文件中,每个数据文件对应在控制文件中各自存在一个Datafile Checkpoint SCN。

    当ckpt进程启动时,包括全局范围的(比如日志切换)以及文件级别的检查点(将表空间置为只读、begin backup或将某个数据文件设置为offline等),这时会在控制文件中记录的SCN。

3、结束SCN (Stop SCN):记录于控制文件中,每个数据文件对应在控制文件中各自存在一个Stop SCN。
    在数据库正常运行期间,Stop SCN(通过视图v$datafile的字段last_change#可以查询)是一个无穷大的数字或者NULL。当数据库正常关闭时,Stop SCN会设置为Start SCN。

4、数据文件头SCN (Start SCN):记录于每个数据文件的文件头中,每个数据文件拥有各自的Start SCN。
    
    当发生系统及文件级别的检查点后,不仅将这时的SCN号记录在控制文件中,同样也记录在数据文件头中。

二、oracle 启动时SCN的作用

    当数据库启动时,会对各个SCN号进行比较,然后判断是否需要介质恢复或实例恢复:

if Datafile_Checkpoint_SCN == Start_SCN:
    不需要media recover
elif Datafile_Checkpoint_SCN > Start_SCN:
    数据文件介质故障,需要media recover
elif Datafile_Checkpoint_SCN < Start_SCN:
    控制文件介质故障,需要media recover

if Stop_SCN is null:
    需要instance media
else:
    不需要instance media

    另外,当执行begin backup时实例崩溃:控制文件中的数据文件检查点SCN号和数据文件头部检查点SCN号相同,但是每个可读写的在线数据文件之间检查点SCN号不同,那么也需要介质恢复。例如,当发出beginbackup命令后就会出现这种情况,需要通过endbackup命令才可以打开数据库。

参考:http://www.itpub.net/thread-1601493-1-1.html 【听海日志】之SCNOracle

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

转载于:http://blog.itpub.net/25465866/viewspace-2146755/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值