暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle中,SCN是什么?

DB宝 2020-04-11
3153


题目部分

在Oracle中,SCN是什么?


     

答案部分



SCNSystem Change Number,系统改变号)是一个由系统内部维护的序列号,在数据库全局是唯一的。当系统需要更新的时候自动增加,它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库中非常重要的一种数据结构。在数据库中,SCN作为一种时钟机制来标记数据库动作,比如,当事务发生时,数据库会用一个SCN来标记它。SCN是在某个时间点定义数据库已提交版本的时间戳标记,Oracle为每个已提交的事务分配一个唯一的SCNSCN的值是对数据库进行更改的逻辑时间点。SCN是一个只会增加、不会减少的数字。

在数据库中,SCN可以说是无处不在,例如数据文件头、控制文件、数据块头、日志文件等等都标记着SCN。也正因为如此,数据库的一致性维护和SCN密切相关。不管是数据的备份还是恢复都离不开SCN。由于SCN描述的是数据一致性的状态,所以,它会在各种涉及数据一致性的场合中起到重要作用。

SCN的组成

SCN是一个6字节(48bit)的数字,其值为281,474,976,710,6562^48),分为2个部分:SCN_BASESCN_WRAPSCN_BASE是一个4字节(32bit)的数字,而SCN_WRAP是一个2字节(16bit)的数字。每当SCN_BASE达到其最大值(2^32 = 4294967296)时,SCN_WRAP增加1SCN_BASE将被重置为0,一直持续到SCN_WRAP达到其最大值,即2^16 = 65536

SCN =SCN_WRAP * 4294967296+ SCN_BASE

SCN随着每个事务的完成而增加。提交不会写入数据文件,也不更新控制文件。当发生checkpoint时,控制文件更新,SCN被写入到控制文件。


本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗



---------------优质麦课------------

详细内容可以添加麦老师微信或QQ私聊。



About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

DBA宝典

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。


最后修改时间:2020-06-12 13:17:10
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论