广告
返回顶部
首页 > 资讯 > 精选 >怎么理解checkpoint cnt和checkpoint scn
  • 745
分享到

怎么理解checkpoint cnt和checkpoint scn

2023-06-06 04:06:26 745人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关怎么理解checkpoint cnt和checkpoint scn,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[说明]模仿eygle大师的一篇文章,自己动手做了

这篇文章将为大家详细讲解有关怎么理解checkpoint cnt和checkpoint scn,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

[说明]模仿eygle大师的一篇文章,自己动手做了一下,感觉只有这样才能印象深刻。原文参考:Http://www.eygle.com/arcHives/2004/06/checkpoint_scn_ckpcnt.html

在不同情况下dump控制文件

sql> alter session set events 'immediate trace name CONTROLF level 10';

Session altered.

SQL> alter tablespace system begin backup;

Tablespace altered.

SQL> alter session set events 'immediate trace name CONTROLF level 10';

Session altered.

SQL> alter system checkpoint;

System altered.

SQL> alter session set events 'immediate trace name CONTROLF level 10';

Session altered.

SQL> alter tablespace system end backup;

Tablespace altered.

SQL> alter session set events 'immediate trace name CONTROLF level 10';

Session altered.

SQL>

从udump目录萃取出trace file中关于system表空间的信息,加以分析

a. 系统正常情况下dump的信息

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

DATA FILE RECORDS

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

 (blkno = 0x6, size = 180, max = 100, in-use = 3, last-recid= 0)

DATA FILE #1:

  (name #6) D:\OPT\oracle9I\PRODUCT\9.2.0\ORADATA\ORA92US\SYSTEM01.DBF

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

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

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

 Checkpoint cnt:55 scn: 0x0000.00194116 04/14/2021 19:36:49

 Stop scn: 0xffff.ffffffff 04/13/2008 20:48:26

 Creation Checkpointed at scn:  0x0000.00000005 03/17/2008 15:57:33

 thread:0 rba:(0x0.0.0)

 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Offline scn: 0x0000.00192482 prev_range: 0

 Online Checkpointed at scn:  0x0000.00192483 04/11/2008 19:27:07

 thread:1 rba:(0x1.2.0)

 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Hot Backup end marker scn: 0x0000.00000000

 aux_file is NOT DEFINED

b.alter tablespace system begin backup以后

我们注意到Checkpoint cnt增加了1,此处触发了一次表空间checkpoint.

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

DATA FILE RECORDS

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

 (blkno = 0x6, size = 180, max = 100, in-use = 3, last-recid= 0)

DATA FILE #1:

  (name #6) D:\OPT\ORACLE9I\PRODUCT\9.2.0\ORADATA\ORA92US\SYSTEM01.DBF

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

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

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

 Checkpoint cnt:56 scn: 0x0000.001941a7 04/14/2021 19:39:26

 Stop scn: 0xffff.ffffffff 04/13/2008 20:48:26

 Creation Checkpointed at scn:  0x0000.00000005 03/17/2008 15:57:33

 thread:0 rba:(0x0.0.0)

 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Offline scn: 0x0000.00192482 prev_range: 0

 Online Checkpointed at scn:  0x0000.00192483 04/11/2008 19:27:07

 thread:1 rba:(0x1.2.0)

 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Hot Backup end marker scn: 0x0000.00000000

 aux_file is NOT DEFINED

c.alter system checkpoint之后

此时Checkpoint cnt增加,但是scn不再改变

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

DATA FILE RECORDS

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

 (blkno = 0x6, size = 180, max = 100, in-use = 3, last-recid= 0)

DATA FILE #1:

  (name #6) D:\OPT\ORACLE9I\PRODUCT\9.2.0\ORADATA\ORA92US\SYSTEM01.DBF

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

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

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

 Checkpoint cnt:57 scn: 0x0000.001941a7 04/14/2021 19:39:26

 Stop scn: 0xffff.ffffffff 04/13/2008 20:48:26

 Creation Checkpointed at scn:  0x0000.00000005 03/17/2008 15:57:33

 thread:0 rba:(0x0.0.0)

 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Offline scn: 0x0000.00192482 prev_range: 0

 Online Checkpointed at scn:  0x0000.00192483 04/11/2008 19:27:07

 thread:1 rba:(0x1.2.0)

 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Hot Backup end marker scn: 0x0000.00000000

 aux_file is NOT DEFINED

d.alter tablespace system end backup之后

此时数据文件头的冻结被取消,scn开始变化

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

DATA FILE RECORDS

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

 (blkno = 0x6, size = 180, max = 100, in-use = 3, last-recid= 0)

DATA FILE #1:

  (name #6) D:\OPT\ORACLE9I\PRODUCT\9.2.0\ORADATA\ORA92US\SYSTEM01.DBF

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

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

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

 Checkpoint cnt:58 scn: 0x0000.001941b3 04/14/2021 19:39:54

 Stop scn: 0xffff.ffffffff 04/13/2008 20:48:26

 Creation Checkpointed at scn:  0x0000.00000005 03/17/2008 15:57:33

 thread:0 rba:(0x0.0.0)

 enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Offline scn: 0x0000.00192482 prev_range: 0

 Online Checkpointed at scn:  0x0000.00192483 04/11/2008 19:27:07

 thread:1 rba:(0x1.2.0)

 enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000

  00000000 00000000

 Hot Backup end marker scn: 0x0000.00000000

 aux_file is NOT DEFINED

Checkpoint cnt用于保证在正常操作中使用的数据文件是当前版本.在恢复时防止恢复数据文件的错误版本.Checkpoint cnt是一直递增的,即使表空间处于热备份模式.

由于表空间的创建时间不尽相同,所以不同表空间/数据文件的Checkpoint cnt通常是不同的 (编者注:从dump文件中确实可以看到这一点,不同的datafile的checkpoint cnt确实不一样).

我们知道:

数据库open的过程中,Oracle要进行两次检查 (编者注:按照eygle在其他很多地方自己的说法,实际情况要复杂很多,这里只是简要说明。也许只有Oracle的开发人员才知道到底要做哪些事情~~~).

第一次检查数据文件头中的Checkpoint cnt是否与对应控制文件中的Checkpoint cnt一致.

如果相等 (编者注:其实如果相等,则System Checkpoint SCN = Datafile Checkpoint SCN = Start SCN), 进行第二次检查.

第二次检查数据文件头的开始SCN和对应控制文件中的结束SCN是否一致

如果结束SCN等于开始SCN,则不需要对那个文件进行恢复 (编者注:如果不等,即Stop SCN为无穷大,则需要Istance Recovery).

(编者注:这里的open过程的说法和我前面转载的关于SCN的文章不尽相同,但是我个人理解第一次就是做是否需要Media Recovery的检查;第二次就是做是否需要做Instance Recovery的检查。第一步如果文件版本不一致,就开始做Media Recover,根据相应的SCN确定需要的log;如果不需要Media Recovery,则检查是否需要Instance Recovery,如果Stop SCN的值为无穷大,则需要,而且要提交redo logs直到最新的那一个)

对每个数据文件都完成检查后,打开数据库.同时将每个数据文件的结束SCN设置为无穷大。

关于怎么理解checkpoint cnt和checkpoint scn就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么理解checkpoint cnt和checkpoint scn

本文链接: https://www.lsjlt.com/news/246048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么理解checkpoint cnt和checkpoint scn
    这篇文章将为大家详细讲解有关怎么理解checkpoint cnt和checkpoint scn,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[说明]模仿eygle大师的一篇文章,自己动手做了...
    99+
    2023-06-06
  • 怎么理解Oracle checkpoint
    本篇内容主要讲解“怎么理解Oracle checkpoint”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Oracle checkpoint”吧!che...
    99+
    2022-10-19
  • SCN、Checkpoint、实例恢复介质恢复理解
    如果LGWR的下一个日志是ACTIVE,那么LWGR会挂起,警告日志会报告"Checkpoint not complete",oracle会发起alter system checkpoint的操作 状态为...
    99+
    2022-10-18
  • 怎么理解nodejs和nginx
    这篇文章主要介绍“怎么理解nodejs和nginx”,在日常操作中,相信很多人在怎么理解nodejs和nginx问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解node...
    99+
    2022-10-19
  • css3和HTML5怎么理解
    本篇内容介绍了“css3和HTML5怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • Python加密和解密怎么理解
    本篇内容主要讲解“Python加密和解密怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python加密和解密怎么理解”吧!在计算机世界里,信息安全始终占...
    99+
    2022-10-19
  • 怎么理解和掌握Redux
    这篇文章主要介绍“怎么理解和掌握Redux”,在日常操作中,相信很多人在怎么理解和掌握Redux问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解和掌握Redux”的疑惑...
    99+
    2022-10-19
  • 怎么理解MySQL的2PC和3PC
    这篇文章主要介绍“怎么理解MySQL的2PC和3PC”,在日常操作中,相信很多人在怎么理解MySQL的2PC和3PC问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解My...
    99+
    2022-10-18
  • 怎么理解Oracle的lock和latch
    这篇文章主要介绍“怎么理解Oracle的lock和latch”,在日常操作中,相信很多人在怎么理解Oracle的lock和latch问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • 怎么理解BiLSTM和CRF算法
    本篇内容介绍了“怎么理解BiLSTM和CRF算法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.前言给定...
    99+
    2022-10-19
  • 怎么理解CSS布局和BFC
    本篇内容介绍了“怎么理解CSS布局和BFC”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是 BFC在一...
    99+
    2022-10-19
  • LINQ和ADO.NET技术怎么理解
    本篇内容主要讲解“LINQ和ADO.NET技术怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“LINQ和ADO.NET技术怎么理解”吧!LINQ和ADO.NET如今,许多业务开发人员都必须...
    99+
    2023-06-18
  • LINQ To SQL和ORM怎么理解
    这篇文章主要讲解了“LINQ To SQL和ORM怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ To SQL和ORM怎么理解”吧!LINQ To SQL和ORM的理解1、没...
    99+
    2023-06-17
  • 怎么理解C语言和ABAP
    本篇内容介绍了“怎么理解C语言和ABAP”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!比如像下图这种用kernel module修饰的sc_...
    99+
    2023-06-04
  • 怎么理解Linux的Cache和Buffer
    本篇文章给大家分享的是有关怎么理解Linux的Cache和Buffer,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先说明,本文讨论的cache指的是Linux中的page ...
    99+
    2023-06-16
  • 怎么理解java中的Exception和Error
    这篇文章主要介绍“怎么理解java中的Exception和Error”,在日常操作中,相信很多人在怎么理解java中的Exception和Error问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解jav...
    99+
    2023-06-16
  • C#委托和事件怎么理解
    这篇文章主要介绍“C#委托和事件怎么理解”,在日常操作中,相信很多人在C#委托和事件怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#委托和事件怎么理解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • Hibernate和模型对象怎么理解
    这篇文章主要讲解了“Hibernate和模型对象怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate和模型对象怎么理解”吧!学习Hibernate时,经常会遇到一些小问题...
    99+
    2023-06-17
  • 怎么理解MYSQL的auto_increment_offset和auto_increment_increment值
    本篇内容主要讲解“怎么理解MYSQL的auto_increment_offset和auto_increment_increment值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让...
    99+
    2022-10-19
  • 怎么理解JavaScript中的BOM和DOM
    本篇内容主要讲解“怎么理解JavaScript中的BOM和DOM”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解JavaScript中的BOM和DOM”吧...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作