oracle SCN 详解

1. 什么是 scn 

SCN(system change number) 就是系统改变号 , 是数据库非常重要的一种数据结构。  在数据库中scn 作为一种时钟机制来标记数据库动作,比如当 事物 的发生,数据库会用一个scn来标记它。同时这个SCN在数据库全局也是唯一的,它随时间的增长而增长除非重建数据。

在数据库中,SCN可以说是无处不在,数据文件头, 控制文件, 数据块头 , 日志文件等等 都标记这 SCN。也正是这样,数据库的一致性维护和SCN密切相关。不管是数据的备份,恢复都是离不开SCN的。

2. 获取当前的SNC

随着oracle的版本的变化,获取 SNC也有相应的变化,下面是不同版本下 获取 SCN 的方法。

1) 在 Oracle Database 10g  中获取当前SCN比较容易只要查看v$database视图就current_scn列就行。 

SQL> select * from v$version ;

BANNER
------------------------------------------------------------
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for HPUX: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

SQL> select current_scn from v$database ;

CURRENT_SCN
-----------
  102952636

2) 在 oracle database 9i  中要麻烦些,v$database视图中没有current_scn这列,只有通过查询x$ktuxe视图来得到。 

SQL> select * from v$version ;

BANNER
--------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE    9.2.0.1.0       Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) scn from x$ktuxe  ;

SCN
----------
    316755

(为了方便查询,建议将此查询创建为一个视图,前提是要你应用允许条件下。)

同时在 9i中也提供相应的包来查当前scn 。

SQL> select dbms_flashback.get_system_change_number from dual ;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                  317040

3. checkpoint

要讲清楚scn ,checkpoint 就必不可讲了。 checkpoint 和scn密切相连,checkpoint能对scn做更新操作,当 oracle在做一次checkpoint 动作时,会将数据文件,日志文件,控制文件中的scn进行更新,同时又将db_cache中的胀数据库写入到磁盘中。 可以通过v$instance_recovery中的CKPT_BLOCK_WRITES查询得到因checkpoint 动作写进磁盘的数据块个数。

SQL> select  CKPT_BLOCK_WRITES from v$instance_recovery ;

CKPT_BLOCK_WRITES

-----------------

4402

对于checkpoint来说其主要作用有两个,一是减少系统crash恢复的时间,二是保证数据库读一致性。 但这个作用归根到底还是到一点上,就是保证数据定期写到数据库文件中。 在这过程当中,checkpoint 动作就将SCN写入到日志文件,控制文件,数据文件中。这里要说一点的是,在日志文件中包含了Low SCN 和 Next Scn , 这两个scn标示着这个日志文件记录的那个阶段的数据库操作。但对于current 状态的日志文件,其Next SCN被设置为无穷大。

SQL> select group# , status , first_change# from v$log ;

GROUP# STATUS           FIRST_CHANGE#

---------- ---------------- -------------

1 ACTIVE                  690093

2 CURRENT                 698092

3 INACTIVE                682581

SQL> alter system checkpoint ;
System altered.
Elapsed: 00:00:00.39
SQL> select status , group# from v$log ;
STATUS               GROUP#
---------------- ----------
INACTIVE                  1
CURRENT                   2
INACTIVE                  3

这个就是我数据库日志文件组的信息,在这中间我做了一次手动的checkpoint (alter system checkpoint ) ,是因为我看了日文件组1 的状态为ACTIVE , 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25380220/viewspace-697631/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25380220/viewspace-697631/

scn 详解(修改)相关推荐

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

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

  2. jupyter notebook python3路径_详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式...

    方式1. 打开Windows的cmd,在cmd中输入jupyter notebook --generate-config如下图: 可以看到路径为D:\Users--找到此路径修改jupyter_not ...

  3. Linux11-权限的介绍 rwx详解 修改权限 修改文件目录所有者 修改文件目录所在组 一个实践和两个练习

    目录 一 权限的基本介绍 0位:确定文件类型(常见类型五种 -  l  d  c  b) -:普通文件 l:链接,相当于win下的快捷方式 d:目录,相当于win下的文件夹 c:字符设备文件,鼠标键盘 ...

  4. oracle数据库的scn,Oracle数据库SCN详解

    SCN号概述 SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字.Oracle数据库中一共有4种SCN分别为 系统检查点SCN: 系统检查点SCN位于控制文件中,当检查点进程启 ...

  5. Oracle SCN详解

    2019独角兽企业重金招聘Python工程师标准>>> SCN号概述  SCN是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字.Oracle数据库中一共有4种SC ...

  6. mysql scn_Oracle scn详解

    如果这两个值相互匹配,oracle接下来还要比较数据文件头中的启动scn和控制文件中数据文件的终止scn.如果这两个值也一致,就意味 前面写过一个scn的基础性的文章,但是不能反映scn的变化和存在情 ...

  7. szu 寒训复习day #4数论入门详解[修改]用Mardown再改了一下

    整数的取余运算 定义:带余除法 设a,ba,ba,b是整数,且b>0b>0b>0,则存在非负整数 q,rq,rq,r ,使得 a=bq+ra=bq+ra=bq+r 且 0≤r< ...

  8. Oracle 系统改变号SCN详解

    这篇文章是参考甲骨论老相老师的教学视频: http://v.youku.com/v_show/id_XNDAyNDIyMDgw.html 所做的学习笔记. 1. SCN的定义 scn的英文全称就是 s ...

  9. 家用电器用户行为分析与事件识别代码详解+修改后运行无误的代码

    运行环境: ubuntu16.04 64位 pycharm python3.5.2 相关软件列表: cycler (0.10.0) graphviz (0.7.1) h5py (2.7.0) Kera ...

最新文章

  1. 虽然这些代码很少,就几行,但却很牛逼!
  2. 简述css布局技术的特点,div+css布局技术漫谈
  3. What is the expectation maximization algorithm?
  4. linux下多线程之pthread_detach(pthread_self())
  5. 运维监控再添新品,F5联合智维数据推出应用质量主动拨测解决方案
  6. 轴只显示5个刻度_告别大象腿,迎接魅力美腿,变身女王你只需5个方法
  7. Java 链表数据修改
  8. 深入分析 RestController 与 Controller 的区别,你真的了解吗?
  9. Java数据结构与算法-环形队列
  10. 2021年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解
  11. OpenCv颜色直方图
  12. javaWeb中的分页处理思想
  13. 【大数据部落】出租车数据分析:用数据告诉你出租车资源配置是否合理
  14. java实验计算机与光盘,JAVA实验指导资料.docx
  15. 华为机顶盒E6108 V9-V9U-V92-V97免拆机-刷机固件及教程
  16. 4 实验项目_Android开发环境搭建
  17. 怎样用python获取财经网新闻
  18. 正弦余弦编码器与增量编码器的区别
  19. XOI2003赛后题解
  20. 零基础学Arcgis系列教程

热门文章

  1. 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(二)------Basic Concepts
  2. 教练技术培训系列篇二——明辨
  3. SNS 游戏中社区 Server 和游戏 Server 一种数据交互的策略
  4. 超大型数据中心正在改变精密空调市场
  5. html格式图片可以转换成word文档,html网页转换成word文档,转换成功,并且可以保存图片,但是总是为web版式的格式,怎么改成“页面”格式,多谢...
  6. 闲来无事,用java写了一个魔方小程序。附源码
  7. 自平衡小车控制代码分享
  8. java 上传 excel_Java对Excel表格的上传和下载处理方法
  9. [NOIP2011]聪明的质监员
  10. python3内置集成开发工具_python应用(3):启用集成开发工具pycharm