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相关推荐

  1. 【体系结构】有关Oracle SCN知识点的整理--补充内容

    [体系结构]有关Oracle SCN知识点的整理--补充内容 小麦苗自己整理的内容参考:[体系结构]有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162 ...

  2. (笔记))oracle SCN 异常增长问题 以及 ORA-19706

    1. http://blog.csdn.net/u011616400/article/details/40301781 2. http://www.xuebuyuan.com/2023482.html ...

  3. oracle的scn技术,Oracle SCN 深入研究

    一. SCN 说明 之前也整理过几遍Oracle SCN的文章,如下: 这里在稍微小总结一下. 我们可以使用如下SQL 查看Oracle 的SCN: SQL> select CURRENT_SC ...

  4. oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系

    天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...

  5. 手动修改oracle scn号,使用Oradebug修改Oracle SCN

    Oracle SCN对于数据库运行.维护而言是至关重要的因素.在启动从mount到open过程中,主要是各种文件的SCN进行比较的行为.通常情况下,我们是不需要介入到Oracle SCN的取值和设置, ...

  6. 讨论oracle的反腐,关于oracle SCN 的讨论

    1.SCN存在redo log文件,control文件.数据文件; 2.oracle正常运行时,control文件的SCN是个很大的数,与redo log文件.数据文件的SCN不同,正常关闭时,做完c ...

  7. oracle scn与数据恢复,SCN与数据库恢复的关系

    一.SCN与CHECKPOINT CKPT进程在checkpoint发生时,将当时的SCN号写入数据文件头和控制文件,同时通知DBWR进程将数据块写到数据文件. CKPT进程也会在控制文件中记录RBA ...

  8. 手动修改oracle scn号,SCN(系统改变号)

    1. scn: system change number 用以标识数据库在某个确切时刻提交的版本. 数据库的内部逻辑时钟. 每个数据库都有一个全局的SCN生成器. 它会随着外部变化的加快而加快变化,在 ...

  9. 搞定Oracle SCN -system change number

    SCN是Oracle的内部时钟,用来反映数据库中所有变化,在运行过程中不断更新.SCN种类包括: (1)系统当前SCN (2)Checkpoint SCN(注意只会随着检查点的发生而被更新:但是在热备 ...

最新文章

  1. 如何控制dedecms描述的长度?
  2. 同步文件,不需要密码
  3. VTK:可视化之MultipleViewports
  4. 安装Wamp后 Apache无法启动的解决方法
  5. CentOS7.3编译安装php7.1
  6. 大数据(3)---分布式文件系统HDFS 介绍
  7. Android中Bitmap缓存池
  8. VS C#/C++ 调试----屏蔽已加载
  9. c语言调用串口扫码枪,C#利用控件mscomm32.ocx读取串口datalogic扫描枪数据
  10. 课程设计-工资管理系统
  11. 单选题计算机科学的奠基人是,超星尔雅计算机课程(2017年)
  12. webfont应用系列(二)如何制作图标字体?
  13. PE装到移动硬盘的资料寻回办法
  14. flutter 轮播组件 Swiper
  15. IDEA配置注释模板
  16. 怎么搭建直播平台,直播环境搭建该怎样做?
  17. Tomcat启动报A child container failed during start问题解决
  18. 每天一刷20200602
  19. 如何用代理解决api接口跨域问题
  20. 【210831】1109. 航班预订统计

热门文章

  1. 安卓 onTouch OnTouchEvent onChick 顺序
  2. 《Linux菜鸟入门》认识linux系统
  3. my-large.cnf
  4. Windows Phone 7 开发之:工具栏
  5. SAP BW 学习笔记(一)
  6. RS485,RS232,USB,Ethernet 传输速度分别是多少
  7. Xilinx FPGA开发工具总结
  8. 802.11b协议的一些介绍和说明
  9. C++实现遍历链表一次求出中间的节点
  10. AutoML自定义搜索网络类(如何在一个大的网络中搜索一个网络)