Oracle SCN介绍

SCN号

    时间的作用:比较先后、比较顺序

    系统使用数字来比较先后顺序

    Oracle数据库里面很多地方需要用到时间,主要用来确认时间先后顺序,这些地方都是SCN号来标识

 

    1、redo日志中会记录scn号

    2、redo log文件头部会有开两个scn号码

        first change#、next change#

        日志文件的第一条redo log对应的scn号

        下一个日志文件第一条redo log对应的scn号

        对于corrent redo log(当前正在使用的redo log文件),next change#为null(无穷大)

    3、数据文件头部会记录SCN号

    4、控制文件中记录所有数据文件的SCN号

        关于控制文件中每一个数据文件的SCN号有两个

            文件 SCN号、终止SCN号

            终止SCN号就是文件关闭时的SCN号

            终止SCN号用来确定数据文件是否正常关闭,如果为null,就需要进行恢复

    5、系统SCN号

        代表系统当前最新时间的SCN

    6、数据块头部有SCN号,代表数据库的新旧程度

    7、提交的时候,会有SCN号,存储事务提交的顺序

 

SCN

    1、每一个数据库SCN号没有可比性,只能在自己内部比较

    2、SCN号只能递增

    3、SCN设计使用500年

    4、数据库互相之间访问的时候,特别是形成网状结构的时候,英文bug很容易导致SCN疯长,达到房顶

    5、只能重建数据库

    6、SCN号主要用来比较新旧,没有必要实时更新

 

系统SCN改变的两种情况

    1、redo log切换

    2、大量的脏页回写的时候

 

查看系统SCN号

 

select *from v$database;

查看数据文件头部SCN号

 

select CHECKPOINT_CHANGE# from v$datafile_header;

查看redo日志文件SCN号

 

select FIRST_CHANGE#,NEXT_CHANGE#  from v$log;

查看控制文件中记录的SCN号

 

select last_change#,checkpoint_change# from datafiles;

 



 
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值