如何查看Oracle控制文件中的SCN

news/2024/7/8 3:59:30

  Oracle控制文件中的SCN很多,最重要的有3类:数据库SCN、数据文件SCN和Checkpoint progress record中的SCN。数据库SCN和数据文件SCN可以分别从V$DATABASE和V$DATAFILE视图的相应列中找到,它们的值通常在全量CHECKPOINT时由CKPT进程更新。CHECKPOINT PROGRESS RECORDS中的SCN可以从V$THREAD.LAST_REDO_CHANGE#列中找到,其值也是由CKPT进程每隔3秒更新一次。

1. 数据库SCN

数据库SCN通常表示最近一次全量CHECKPOINT操作时的SCN,可以查询V$DATABASE获取该SCN,如下所示:

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#

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

            722212

也可以DUMP控制文件获取数据库的SCN。DUMP控制文件的方法如下:

ALTER SESSION SET EVENTS 'immediate trace name controlf level n';

1 文件头信息

2 level 1 + 数据库信息 + 检查点信息

3 level 2 + 可重用节信息

10 level 3

打开跟踪文件,可以看到数据库的SCN和V$DATABASE.CHECKPOINT_CHANGE#中查询的SCN值一致,0x0000.000b0524转换成10进制为722212,如下所示(跟踪文件内容有所省略):

DATABASE ENTRY

***************************************************************************

 (size = 316, compat size = 316, section max = 1, section in-use = 1,

  last-recid= 0, old-recno = 0, last-recno = 0)

 (extent = 1, blkno = 1, numrecs = 1)

 03/02/2013 07:01:31

 DB Name "ORA10205"

 Database flags = 0x00404001 0x00001000

 Controlfile Creation Timestamp  03/02/2013 07:01:31

 Incmplt recovery scn: 0x0000.00000000

 Resetlogs scn: 0x0b9d.47147d50 Resetlogs Timestamp  01/10/2013 10:56:41

 Prior resetlogs scn: 0x0b9d.470c6a44 Prior resetlogs Timestamp  12/16/2012 13:56:32

 Redo Version: compatible=0xa200500

 #Data files = 8, #Online files = 7

 Database checkpoint: Thread=1 scn: 0x0000.000b0524

 Threads: #Enabled=1, #Open=1, Head=1, Tail=1

2. 数据文件SCN

可以通过V$DATAFILE查询保存在控制文件中的数据文件SCN,该SCN主要有以下3种形式:

  1. 数据文件头SCN。该SCN是判断控制文件和数据文件是否一致的标准之一。可以通过V$DATAFILE.CHECKPOINT_CHANGE#查询。如果不对数据文件做额外的操作(例如将表空间置为OFFLJNE或者BEGIN BACKUP),那么数据文件头SCN值(V$DATAFILE.CHECKPOINT_CHANGE#)将和数据库SCN(V$DATABASE.CHECKPOINT_CHANGE#)保持一致。
  2. STOP SCN。该SCN在数据库处于运行状态或者异常关闭时为无穷大,即0xffff.ffffffff。如果数据库正常关闭,则和V$DATAFILE.CHECKPOINT_CHANGE#值相同。可以通过V$DATAFILE.LAST_CHANGE#查询。
  3. CREATION SCN。表示数据文件创建时的SCN,可以通过V$DATAFILE.CREATEION_CHANGe#查询。如果数据文件被误删除,在重新创建该数据文件时,Oracle会根据该SCN值定位需要应用的第一个归档日志。

由于以上SCN保存在控制文件中,所以DUMP控制文件也可以获得数据文件SCN。其中“Checkpoint scn”表示数据文件头SCN,和V$DATAFILE.CHECKPOINT_CHANGE#值相同。“STOP SCN”和V$DATAFILE.LAST_CHANGE#值相同。“Creation Checkpointed at scn”表示CREATION SCN,和V$DATAFILE.CREATEION_CHANGe#相同。以下为1号数据文件在控制文件中的SCN:

DATA FILE #1:

  (name #4) /ora10205/oradata/ora10205/system01.dbf

creation size=38400 block size=8192 status=0xe head=4 tail=4 dup=1

 tablespace 0, index=1 krfil=1 prev_file=0

 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00

 Checkpoint cnt:103 scn: 0x0000.000b0524 07/29/2012 11:56:19

 Stop scn: 0xffff.ffffffff 07/27/2012 22:25:17

 Creation Checkpointed at scn:  0x0000.00000007 07/10/2012 10:25:11

3. CHECKPOINT PROGRESS RECORDS中的SCN

CHECKPOINT PROGRESS RECORDS中的ON DISK SCN表示当前系统最新RBA对应的SCN,由CKPT进程每3秒更新一次。如果数据库异常宕机,那么CRASH RECOVER时服务器进程至少要应用到该SCN为止。当系统比较空闲时, CHECKPOINT PROGRESS RECORDS信息能比较精确地反映数据库的运行状态。在DUMP控制文件之后,能获得CHECKPOINT PROGRESS RECORDS中的SCN,如下所示:

CHECKPOINT PROGRESS RECORDS

***************************************************************************

 (size = 8180, compat size = 8180, section max = 11, section in-use = 0,

  last-recid= 0, old-recno = 0, last-recno = 0)

 (extent = 1, blkno = 2, numrecs = 11)

THREAD #1 - status:0x2 flags:0x0 dirty:5

low cache rba:(0x53.11040.0) on disk rba:(0x53.1104b.0)

on disk scn: 0x0000.000b2393 07/29/2012 16:56:44

resetlogs scn: 0x0000.00000001 07/10/2012 10:25:06

heartbeat: 789930889 mount id: 1694236548

由于CHECKPOINT PROGRESS RECORDS由CKPT进程负责更新,所以也可以从X$KCCCP([K]ernel [C]ache [C]ontrolfile management [c]heckpoint [p]rogress)中获得CHECKPOINT PROGRESS RECORDS中的ON DISK SCN,如下所示:

SQL>  select CPODS from x$kcccp where rownum<2;

CPODS

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

730003

从Oracle 10g开始,也可以从V$THREAD.LAST_REDO_CHANGE#中查询,如下所示:

SQL> select LAST_REDO_CHANGE#  from v$thread;

LAST_REDO_CHANGE#

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

           730003


http://lihuaxi.xjx100.cn/news/1137265.html

相关文章

LabVIEWCompactRIO 开发指南20 应用程序接口

应用程序接口 STMAPI如图4.24所示。对于基本操作&#xff0c;它由一个读VI和一个写VI组成。它还具有两个补充VI&#xff0c;以帮助传输元数据&#xff0c;但它们的使用不是强制性的。每个主要的VI都是多态&#xff0c;这意味着可以将它们与不同的传输层一起使用。本文档讨论基…

10个学习Python的理由以及Python的优势有哪些?

Python的由来 Python的创始人是吉多范罗苏姆&#xff0c;1989年他在阿姆斯特丹的CWI工作&#xff0c;圣诞节期间&#xff0c;吉多范罗苏姆为了打发圣诞节的无聊&#xff0c;决定开发一个新的脚本解释程序&#xff0c;作为ABC 语言的一种继承。之所以选择Python作为编程语言的名…

项目管理:(三)项目整体管理

三、项目整体管理 3.1 项目整体管理概述 3.1.1 项目整体管理的含义、作用、过程 项目整体管理包括为识别、定义、组合、统一和协调各项目过程组的各种过程和活动而开展的工作&#xff0c;是项目管理中一项综合性和全局性的管理工作。 项目整体管理6个过程 1、制定项目章程…

AD9680+JESD204B接口+FPGA FMC高速率数据采集板卡

板卡概述&#xff1a; 【FMC_XM155】 FMC_XM155 是一款基于 VITA57.1 标准的&#xff0c;实现 2 路 14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合 ADC 同步采集 FMC 子卡模 块。 该模块遵循 VITA57.1 规范&#xff0c;可直接与 FPGA 载卡配合使用&#xff0c;板 卡 ADC 器件采用…

markdown神器 -Typora使用教程笔记2023最新版

文章目录 前言一、下载安装包和魔法工具二、第一步 选择为所有人安装三、第二步 创建桌面快捷方式四、第四步 安装五、第五步 完成安装六、第六步 取消勾选自动更新七、第七步 将魔法文件放在安装路径的根目录八、第八步 恭喜你&#xff0c;激活完成总结魔法工具获取方式 前言 …

探索三维世界【4】:Three.js dat.gui gsap 的使用

探索三维世界【4】&#xff1a;Three.js & dat.gui & gsap 的使用 1、dat.gui是什么&#xff1f;2、gsap的介绍与使用2.1、前提准备工作&#xff08;绘制一个BoxGeometry&#xff09;2.2、安装引入gsap动画库2.3、使用gsap动画2.4、配合事件使用 3、使用dat.gui3.1、添…

浅谈Gradle构建工具

一、序言 常见的项目构建工具有Ant、Maven、Gradle&#xff0c;以往项目常见采用Maven进构建&#xff0c;但随着技术的发展&#xff0c;越来越多的项目采用Gradle进行构建&#xff0c;例如 Spring-boot。Gradle站在了Ant和Maven构建工具的肩膀上&#xff0c;使用强大的表达式语…

Mars3d实现单击按钮高亮矢量对象

调用高亮的关键代码&#xff1a; let graphictruck new mars3d.graphic.ModelEntity({ position: [116.327881, 31.018378, 5000], style: { url: //data.mars3d.cn/gltf/mars/qiche.gltf, heading: 90, scale: 0.9, …