如何理解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,这表示数据文 件已经打开并能够正常使用了。

时间: 2024-12-03 17:56:22

如何理解Oracle SCN的相关文章

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

[体系结构]有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:[体系结构]有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构. SCN用以标识数据库在某个确切时刻提交

Oracle SCN与数据恢复的关系

Oracle内部主要存在以下四种SCN 1.系统检查点(system checkpoint)SCN 每当一个 检查点完成时,Oracle就把该检查点对应的SCN记录到控制文件中,可以用以下语句查看当前 数据库的检查点SCN: select CHECKPOINT_CHANGE# from v$database; CHECKPOINT_CHANGE# ------------------ 6627441168 2.数据文件头 SCN(数据文件的启动SCN) 该SCN记录在每个数据文件头中,正常情况下

oracle SCN怎么取出来存在一个变量里面?

问题描述 oracle SCN怎么取出来存在一个变量里面? 如题,我想在一个表里记录SCN号,如何把它放在一个变量里? declare SCNNUM NUMBER; begin select dbms_flashback.get_system_change_number into SCNNUM from dual ; [Error] ORA-00904 (12: 8): PL/SQL: ORA-00904: : invalid identifier WHY?

深入并行:从数据倾斜到布隆过滤深度理解Oracle的并行

陈焕生 Oracle Real-World Performance Group 成员,senior performance engineer,专注于 OLTP.OLAP 系统 在 Exadata 平台和 In-Memory 特性上的最佳实践.个人博客 http://dbsid.com . 编辑手记:感谢陈焕生授权我们发布他的精品文章,Sidney撰写这个系列的文章时间跨度也有两年,下篇刚刚出炉,我们先从他去年投稿的第一篇开始. 上一篇请阅读:深入并行:从生产者到消费者模型深度理解Oracle的并

深入并行:从并行加载到12c Adaptive特性深度理解Oracle并行

陈焕生 Oracle Real-World Performance Group 成员,senior performance engineer,专注于 OLTP.OLAP 系统 在 Exadata 平台和 In-Memory 特性上的最佳实践.个人博客 http://dbsid.com . 编辑手记:感谢陈焕生的精品文章,这篇文章首发在ACOUG,在此转载分享给大家,Sidney撰写这个系列的文章时间跨度也有两年,下篇刚刚出炉. 上篇分为两篇文章: 深入并行:从生产者到消费者模型深度理解Oracl

深入并行:从生产者到消费者模型深度理解Oracle的并行

陈焕生 Oracle Real-World Performance Group 成员,senior performance engineer,专注于 OLTP.OLAP 系统 在 Exadata 平台和 In-Memory 特性上的最佳实践.个人博客 http://dbsid.com . 编辑手记:感谢陈焕生授权我们发布他的精品文章,Sidney撰写这个系列的文章时间跨度也有两年,下篇刚刚出炉,我们先从他去年投稿的第一篇开始. Oracle 的并行执行 Oracle 的并行执行是一种分而治之的方

深刻理解Oracle数据库的启动和关闭_oracle

正在看的ORACLE教程是:深刻理解Oracle数据库的启动和关闭.Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager.从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接

oracle检查点及oracle SCN知识详解

一.检查点概述 大多数关系型数据库都采用"在提交时并不强迫针对数据块的修改完成"而是"提交时保证修改记录(以重做日志的形式)写入日志文件"的机制,来获得性能的优势.这句话的另外一种描述是:当用户提交事务,写数据文件是"异步"的,写日志文件是"同步"的.这就可能导致数据库实例崩溃时,内存中的DB_Buffer 中的修改过的数据,可能没有写入到数据块中.数据库在重新打开时,需要进行恢复,来恢复DB Buffer 中的数据状态,并确

深入剖析 - Oracle SCN机制详细解读

SCN介绍 SCN即系统改变号(System Change Number),是在某个时间点定义数据库已提交版本的时间戳标记. Oracle为每个已提交的事务分配一个唯一的SCN. SCN的值是对数据库进行更改的逻辑时间点. Oracle使用此编号记录对数据库所做的更改.在数据库中,SCN也可以说是无处不在,数据文件头,控制文件,数据块头,日志文件等等都标记着SCN.也正是这样,数据库的一致性维护和SCN密切相关.不管是数据的备份,恢复都是离不开SCN的. SCN是一个6字节(48bit)的数字,