Oracle SCN
SCN定义
SCN (System Chage/Commit Number ) 记录系统改变的一个号码,用于标记数据库在某个时刻提交的版本。在一个事物发生提交操作(commit)时,会赋予事物一个唯一SCN值。每个数据库都有个全局的SCN 生成器。SCN是递增的,但是可能会不连贯。数据库的事物根据SCN排序确定先后,Oracle 也会根据SCN做数据库的一致性读(Read Consistency)操作。以及数据的恢复机制中也会用到SCN。
SCN 由两部分组成,SCN Wrap 与 SCN Base 。其中高位SCN Wrap 2个字节 ,低位SCN Base 4个字节。原因是SCN变化很快,所以4个字节的SCN 数不够用,所以又加了个高位,为了兼容一些系统才设计成两部分。
SCN 获取
1.使用 dbms_flashback.get_system_change_number 获取(oracle 9i 及以后):
select dbms_flashback.get_system_change_number from dual;
2.从V$database 视图中获取(oracle 10 g 及以后):
select current_scn from v$database;
SCN 应用
SCN 一般在数据发生commit 或者回滚的时候改变。在控制文件、数据文件头、数据块、日志文件头、日志文件 change vector 中都有SCN,但其作用各不相同。
(1) 数据文件
数据文件头中包含了该数据文件的Checkpoint SCN ,表示该数据文件最后一次执行检查点操作时的 SCN。对于每个数据文件,都包含一个SCN的条目,包含SCN值及检查点发生的时间。在数据库启动时,通过对比控制文件的SCN信息和数据文件头中的SCN信息,来确保数据库的一致性和判断是否需要进行文件恢复。
(2) 日志文件
在日志文件中,包含两个SCN条目,Low SCN 和 Next SCN 。这两个SCN可以标志出该日志文件中所有介于两个SCN的重做信息。对于正在使用的日志文件(状态为current的日志文件),next SCN值为 ffffff 。日志中的SCN可以用于数据的恢复等操作。
转载于:https://www.cnblogs.com/liyasong/p/oracle_scn.html
Oracle SCN相关推荐
- 【体系结构】有关Oracle SCN知识点的整理--补充内容
[体系结构]有关Oracle SCN知识点的整理--补充内容 小麦苗自己整理的内容参考:[体系结构]有关Oracle SCN知识点的整理 http://blog.itpub.net/26736162 ...
- (笔记))oracle SCN 异常增长问题 以及 ORA-19706
1. http://blog.csdn.net/u011616400/article/details/40301781 2. http://www.xuebuyuan.com/2023482.html ...
- oracle的scn技术,Oracle SCN 深入研究
一. SCN 说明 之前也整理过几遍Oracle SCN的文章,如下: 这里在稍微小总结一下. 我们可以使用如下SQL 查看Oracle 的SCN: SQL> select CURRENT_SC ...
- oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系
天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...
- 手动修改oracle scn号,使用Oradebug修改Oracle SCN
Oracle SCN对于数据库运行.维护而言是至关重要的因素.在启动从mount到open过程中,主要是各种文件的SCN进行比较的行为.通常情况下,我们是不需要介入到Oracle SCN的取值和设置, ...
- 讨论oracle的反腐,关于oracle SCN 的讨论
1.SCN存在redo log文件,control文件.数据文件; 2.oracle正常运行时,control文件的SCN是个很大的数,与redo log文件.数据文件的SCN不同,正常关闭时,做完c ...
- oracle scn与数据恢复,SCN与数据库恢复的关系
一.SCN与CHECKPOINT CKPT进程在checkpoint发生时,将当时的SCN号写入数据文件头和控制文件,同时通知DBWR进程将数据块写到数据文件. CKPT进程也会在控制文件中记录RBA ...
- 手动修改oracle scn号,SCN(系统改变号)
1. scn: system change number 用以标识数据库在某个确切时刻提交的版本. 数据库的内部逻辑时钟. 每个数据库都有一个全局的SCN生成器. 它会随着外部变化的加快而加快变化,在 ...
- 搞定Oracle SCN -system change number
SCN是Oracle的内部时钟,用来反映数据库中所有变化,在运行过程中不断更新.SCN种类包括: (1)系统当前SCN (2)Checkpoint SCN(注意只会随着检查点的发生而被更新:但是在热备 ...
最新文章
- 如何控制dedecms描述的长度?
- 同步文件,不需要密码
- VTK:可视化之MultipleViewports
- 安装Wamp后 Apache无法启动的解决方法
- CentOS7.3编译安装php7.1
- 大数据(3)---分布式文件系统HDFS 介绍
- Android中Bitmap缓存池
- VS C#/C++ 调试----屏蔽已加载
- c语言调用串口扫码枪,C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据
- 课程设计-工资管理系统
- 单选题计算机科学的奠基人是,超星尔雅计算机课程(2017年)
- webfont应用系列(二)如何制作图标字体?
- PE装到移动硬盘的资料寻回办法
- flutter 轮播组件 Swiper
- IDEA配置注释模板
- 怎么搭建直播平台,直播环境搭建该怎样做?
- Tomcat启动报A child container failed during start问题解决
- 每天一刷20200602
- 如何用代理解决api接口跨域问题
- 【210831】1109. 航班预订统计