Oracle SCN

http://space.itpub.net/?uid-26277071-action-viewspace-itemid-711066


SCN是Oracle数据库的内部时钟,它在Oracle的多个地方出现,含义各不相同。
1.系统检查点(system checkpoint)SCN
每当一个检查点完成时,Oracle就把该检查点对应的SCN记录到控制文件中,可以用以下语句查看当前数据库的检查点SCN:
select CHECKPOINT_CHANGE# from v$database;

CHECKPOINT_CHANGE#
------------------
        6627441168
2.数据文件头SCN(数据文件的启动SCN)
该SCN记录在每个数据文件头中,正常情况下,该SCN应该和记录在控制文件中的检查点SCN一致,可以用以下语句查看数据文件头的SCN:
select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1         6627448310
         2         6627448310
         3         6627448310
         4         6627448310
         5         6627448310
3.数据文件的检查点SCN和终止SCN
这两个SCN不是记录在数据文件中,而是记录在控制文件中,可以通过以下语句查看:
select CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;

CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
        6627448310
        6627448310
        6627448310
        6627448310
        6627448310
4.三个数据文件SCN的关系
和数据文件相关的SCN有:启动SCN(即数据文件头SCN),检查点SCN,终止SCN,其中第一个SCN保存在每个数据文件头,而后两个SCN都保存在控制文件中。
在数据库的正常运行中,启动SCN,检查点SCN应该一样,而终止SCN被设为无穷大(NULL),如果数据库正常关闭,则在关闭前会将每个数据文件的终止SCN设为和启动SCN一样;如果数据库异常关闭,终止SCN仍保存无穷大。
每次数据库启动时,比较每个数据文件的启动SCN和终止SCN,如果一致,该数据文件不需要恢复,如果不一致则必须恢复。

5.日志文件SCN
日志文件有低SCN和高SCN之分,低SCN代表该日志文件第一个Redo记录的SCN,而高SCN代表该日志文件最后一个Redo记录的SCN,可以通过以下语句查询:

select FIRST_CHANGE#,NEXT_CHANGE# from v$log_history;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值