系统检查点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

都会设置

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

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

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

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

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

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

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

澄清几个概念

1)系统当前SCN并不是在任何的数据库操作发生时都会改变,SCN是在事务提交或回滚时改变,

2)在控制文件,数据文件头,数据块,日志文件头,日志文件change vector中都有SCN,但其作用各不相同数据文件头中包含了该数据文件的checkpoint SCN,表示给数据文件最近一次执行检查点操作时的SCN.日志文件头中包含了low scn,next scn,表示给日志

但在异常当机的情况下,由于最后一次

在确定了哪个数据文件须redo后,oracle会比较change vector中的SCN和数据文件数据块中的SCN,如果change vector的SCN小于数据块的scn,则跳过此change vector,否则redo

数据块中ITL中还有SCN,但它的作用是用于产生一致性读快照

mysql scn_关于scn的理解相关推荐

  1. mysql中的scn_关于SCN的理解(全面)

    1.oracle正常运行时,control文件的SCN是个很大的数,与redo log文件.数据文件的SCN不同,正常关闭时,做完checkpoint后,三者的SCN值相同; Biti:日志文件中sc ...

  2. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 原文 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 感谢大家在上一篇 学一 ...

  3. mysql 锁机制 mvcc_轻松理解MYSQL MVCC 实现机制

    轻松理解MYSQL MVCC 实现机制 轻松理解MYSQL MVCC 实现机制 #### 1. MVCC简介 ##### 1.1 什么是MVCC MVCC是一种多版本并发控制机制. ##### 1.2 ...

  4. 【MySQL笔记】正确的理解MySQL的MVCC及实现原理

    MVCC多版本并发控制 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里 !首先声明,MySQL 的测试环境是 5.7 前提概要 什么是 MVCC 什么是当前读和快照读 ...

  5. mysql临时文件和临时表_理解mysql的临时表和文件排序

    我们经常看到Mysql的explain语句执行结果Extra字段有using temporary或者using filesort,本文主要是为了理解这两个短语的含义,从而有助于我们进行SQL语句优化. ...

  6. mysql中文乱码的一点理解

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B. 如果你也遇到了这个问题,咱 ...

  7. MySQL笔记3:深入理解MySQL中的NULL

    深入理解MySQL中的NULL NULL:表示没有值,无法比较两个没有值的量.

  8. 关于mysql触发器和存储过程的理解

    内容源自:一篇很棒的 MySQL 触发器学习教程 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊 ...

  9. mysql核心技术分析_深入理解MySQL核心技术

    前言 第1章 MySQL的历史与架构 MySQL的历史 MySQL的架构 第2章 MySQL源代码基本要点 Unix Shell BitKeeper 准备系统:从BitKeeper树构建MySQL 从 ...

最新文章

  1. 组装简历必备的9大要件
  2. Mac电脑设置adb环境变量
  3. 朴素贝叶斯方法(Naive Bayes)原理和实现
  4. jenkins自动化构建iOS应用配置过程中遇到的问题
  5. 先天性脑部发育异常_儿童脑发育不良的3大“诱因”,若孩子出现这5种异常,要警惕...
  6. Java秒杀系统实战系列~分布式唯一ID生成订单编号
  7. apache实现手机访问www网站自动跳转到WAP站点
  8. URI和URL、URN的作用和区别
  9. web开源FlowPlayer视频播放器
  10. 组合数学+概率,期望+生成函数一文全精通
  11. win10计算机入门使用教程,win10系统使用教程_windows10基本使用教程图文步骤
  12. 使用Foxmail设置Gmail以及Hotmail
  13. js FOR循环效率问题
  14. A Game of Thrones(39)
  15. DBeaver小松鼠:数据库客户端界面工具DBeaver连接Hive
  16. 吉时利DMM6500数字万用表可视化数据,轻松发现测量趋势
  17. matlab2016 1935,李英冰农历
  18. [bzoj4889] [Tjoi2017]不勤劳的图书管理员
  19. 去掉最高分和最低分来评价成绩,用java实现
  20. windows7 bat自动批处理改变IP地址、DNS和代理设置

热门文章

  1. 有关计算机的英语名言,有关生命力励志英文名言
  2. 什么是VPS(Virtual Private Server 虚拟专用服务器)技术?
  3. 折腾记录,win11局域网文件夹共享
  4. node 使用get和post向后台请求数据的使用方式对比
  5. 东南大学计算机考研分数线2019,2019考研东南大学复试分数线已公布
  6. 12套高大上的后台管理系统模板,总有一套适合你
  7. VLC媒体播放器系统结构
  8. python爬虫糗事百科
  9. 高仿糗事百科,完整版项目源码,带服务器部分
  10. 埃斯顿三轴机器人编程_埃斯顿机器人核心技术研发及应用