zoukankan      html  css  js  c++  java
  • Oracle数据库SCN号详解

    Oracle数据库SCN号详解:
      系统检查点scn(v$database(checkpoint_change#))

      数据文件检查点(v$datafile(checkpoint_change#))

      数据文件终止scn(v$datafile(last_change#))

      数据文件中存放的检查点

      启动scn (v$datafile_header(checkpoint_change#)

      1、系统检查点scn

      当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。

      select checkpoint_change# from v$database

      2、数据文件检查点scn

      当一个检查点动作完成之后,Oracle就把每个数据文件的scn单独存放在控制文件

      中。

      select name,checkpoint_change# from v$datafile

      3、启动scn

      Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,

      因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。

      select name,checkpoint_change# from v$datafile_header

      4、终止scn

      每个数据文件的终止scn都存储在控制文件中。

      select name,last_change# from v$datafile

      在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null.

      5、在数据库运行期间的scn值

      在数据库打开并运行之后,控制文件中的系统检查点、控制文件中的数据文件检查点scn

      和每个数据文件头中的启动scn都是相同的。控制文件中的每个数据文件的终止scn都为null.

      在安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn

      都会设置成数据文件头中的那个启动scn的值。在数据库重新启动的时候,

      Oracle将文件头中的那个启动scn与数据库文件检查点scn进行比较,

      如果这两个值相互匹配,oracle接下来还要比较数据文件头中的启动scn和控制文件

      中数据文件的终止scn。如果这两个值也一致,就意味着所有数据块多已经提交,所有

      对数据库的修改都没有在关闭数据库的过程中丢失,因此这次启动数据库的过程

      也不需要任何恢复操作,此时数据库就可以打开了。当所有的数据库都打开之后,

      存储在控制文件中的数据文件终止scn的值再次被更改为null,

      这表示数据文件已经打开并能够正常使用了。

  • 相关阅读:
    Nginx配置文件详解
    ngrinder 负载均衡脚本开发
    spring boot过滤器FilterRegistrationBean
    Spring boot 拦截器和过滤器
    spring controller中默认转发、forward转发、redirect转发之间的区别
    @RestControllerAdvice作用及原理
    Android APK脱壳--腾讯乐固、360加固一键脱壳
    java 简单xor加密
    facebook 研究
    阿里云docker安装
  • 原文地址:https://www.cnblogs.com/sopost/p/2190691.html
Copyright © 2011-2022 走看看