`
itspace
  • 浏览: 978789 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ORACLE switch logfile更新ckpt研究

阅读更多
v$datafile信息来自controlfile,v$datafile_header信息来自数据文件头,从理论上来讲v$datafile和v$datafile_header的checkpoint_change#字段更新是同步的。需要指出的是logfile switch,并没有进行全量的ckpt触发。(full checkpoint),v$datafile和v$datafile_header的ckpt只是注明了哪个scn开始recover(假如现在数据库宕掉的话)。
下面观察一下日志切换更新controlfile和datafile的过程:
1。当看当前logfile状态
SQL> select sequence#,status from v$log;

 SEQUENCE# STATUS
---------- ----------------
     24941 CURRENT
     24939 INACTIVE
     24940 INACTIVE

2.查看目前ckpt
SQL>  select checkpoint_change# from v$datafile_header;

      CHECKPOINT_CHANGE#
------------------------
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
                       0
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.

SQL>  select checkpoint_change# from v$datafile;

      CHECKPOINT_CHANGE#
------------------------
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9359604423730
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.


3.切换一个日志,并观察v$datafile_header和v$datafile的ckpt变化
SQL>  select checkpoint_change# from v$datafile_header;

      CHECKPOINT_CHANGE#
------------------------
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
                       0
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.

SQL>  select checkpoint_change# from v$datafile;

      CHECKPOINT_CHANGE#
------------------------
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9744661109769
           9359604423730
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.

可以看到ckpt并没有发生变化。那什么时候日志切换会造成ckpt发生变化呢
4.再次查看logfile状态,可以看到状态为active

SQL> select sequence#,status from v$log;

 SEQUENCE# STATUS
---------- ----------------
     24944 CURRENT
     24942 ACTIVE
     24943 ACTIVE

5。查看ckpt值
SQL> select checkpoint_change# from v$datafile_header;

      CHECKPOINT_CHANGE#
------------------------
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
                       0
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.

SQL>  select checkpoint_change# from v$datafile;

      CHECKPOINT_CHANGE#
------------------------
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9744661117946
           9359604423730
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

6。switch logfile,并观察ckpt变化
SQL> alter system switch logfile;

System altered.

SQL>  select checkpoint_change# from v$datafile_header;

      CHECKPOINT_CHANGE#
------------------------
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
                       0
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.

SQL>  select checkpoint_change# from v$datafile;

      CHECKPOINT_CHANGE#
------------------------
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9744661118208
           9359604423730
           9359600426926

      CHECKPOINT_CHANGE#
------------------------
           9359600426926
           9359600426926

13 rows selected.


可以看到ckpt发生了变化。

总结:
ORACLE切换到下一个日志之前,下一个日志状态为inactive时,switch logfile是不会进行更新ckpt的,只有当状态为active时,switch logfile才会进行更新ckpt。因为当状态为active的日志,ORACLE需要重用它时(即lgwr写logfile),lgwr必须触发dbwr进程去刷新该日志相关的脏块,当这些脏块刷新到数据文件时,触发ckpt进程更新数据文件头和controlfile


0
0
分享到:
评论

相关推荐

    ckpt.t7资源ckpt.rar

    首先,"ckpt.t7"是 Torch 框架下的模型检查点(checkpoint)文件,Torch 是一个流行的开源机器学习库,广泛用于研究和开发。这种文件格式包含了模型在训练过程中学到的所有权重和偏置,它们是神经网络的精髓,记录了...

    oracle scn

    Oracle SCN Oracle SCN(System Change Number)是一种非常重要的标记,...Checkpoint 机制是 Oracle SCN 的一个重要组成部分,用于同步所有的 datafile、controlfile 和 redo logfile,确保数据库的一致性和可靠性。

    详解TensorFlow查看ckpt中变量的几种方法

    查看TensorFlow中checkpoint内变量的几种方法 查看ckpt中变量的方法有三种: 在有model的情况下,使用tf.train.Saver进行restore ... 如果模型保存为.ckpt-xxx-data (图结构)、.ckpt-xxx.index (参数名)、.ckpt-

    ckpt.t7 deepsort 3.0文件

    然而,当你尝试运行`deepsort 3.0`时遇到`FileNotFoundError: [Errno 2] No such file or directory`,这表明程序在试图加载`ckpt.t7`模型权重文件时找不到该文件。这可能是由于以下原因: 1. **文件路径错误**:...

    Oracle数据库管理分析过程.pptx

    - 强制日志切换:使用`ALTER SYSTEM SWITCH LOGFILE`命令可手动进行日志切换。 - 检查点参数:`LOG_CHECKPOINT_INTERVAL`和`LOG_CHECKPOINT_TIMEOUT`控制检查点的频率和超时时间。 - 手工检查点:使用`ALTER ...

    ckpt2pd.py

    加载textcnn的ckpt模型,并将它转化为pd文件用于tensorflow_serving

    Oracle SCN详解

    当一笔交易 commit 时,LGWR 会将 log buffer 写入 redo log file,同时也会将该笔交易的 SCN 同步写入到 redo logfile 内(wait-until-completed)。因此当你 commit 交易时,在交易成功的讯息返回之前,LGWR 必须...

    深度学习风格迁移训练后权重 ckpt格式

    在这个话题中,我们将深入探讨"深度学习风格迁移训练后权重 ckpt格式"。 深度学习是机器学习的一个分支,它模仿人脑神经网络的工作方式来解决复杂问题。在风格迁移中,深度学习模型通常由卷积神经网络...

    Checkpoint Oracle

    缓冲区管理使用了双向链表结构,例如REPL(正在使用的缓冲区)、REPL-AUX(准备用于I/O或CR构建的缓冲区)、WRITE(需要I/O的脏缓冲区)和CKPT-Q(写入检查点的脏缓冲区)。通过Touch Count来确定REPL链中缓冲区的...

    ckpt.t7文件deepsort重识别模型.zip

    在IT领域,特别是计算机视觉和视频处理中,"ckpt.t7文件"和"DeepSort重识别模型"是两个关键概念,它们与追踪和目标识别技术紧密相关。在这里,我们将深入探讨这两个概念及其在实际应用中的作用。 首先,`ckpt.t7` ...

    deepsort 所需文件ckpt.t7

    "ckpt.t7"文件是这个特定实现中使用的权重文件,对于理解并运行deepsort算法至关重要。 DeepSORT(深度排序)是基于DeepTrack和SORT(Simple Online and Realtime Tracking)的改进版本,由Wojke等人提出。它结合了...

    Oracle SCN机制解析

    Low SCN和Next SCN用于跟踪Redo Log的记录范围,当发生日志切换或CheckPoint时,DBWn会根据这些SCN将数据写入数据文件,同时更新Control File和数据文件头中的SCN。 SCN的生成基于时间戳,每当需要新的SCN时,系统...

    deepsort重识别权重文件ckpt.t7

    在给定的文件“deepsort重识别权重文件ckpt.t7”中,我们讨论的是DeepSORT算法经过重新训练后得到的权重文件。 DeepSORT的主要组成部分包括两个关键模块:卡尔曼滤波器(Kalman Filter)用于预测目标状态,并通过...

    YOLO_small.ckpt

    在给定的压缩包文件"YOLO_small.ckpt"中,包含的是YOLO_small模型的权重文件。".ckpt"扩展名代表Checkpoints,这是TensorFlow框架中用于存储模型训练过程中的权重和状态的一种格式。这些权重是在训练过程中通过反向...

    oracle原厂培训笔记

    ### Oracle原厂培训笔记知识点概览 #### 一、Oracle认证体系介绍 - **OCA (Oracle Certified Associate)**: 入门级别的Oracle认证,适用于具备基本Oracle技能的专业人士。 - **OCP (Oracle Certified Professional)...

    Oracle数据库体系结构( 中文详细版)

    10. **进程**(Processes):Oracle数据库运行时涉及多种进程,如数据库服务器进程(DBWn)、检查点进程(CKPT)、日志写入进程(LGWR)、系统监控(SMON)和进程监控(PMON)等,它们协同工作以保证数据库的正常...

    残差网络resnet_50_ckpt文件

    ResNet是由微软研究院的研究人员何凯明等人在2015年提出的,它解决了深度神经网络(DNN)在增加层数时容易遇到的梯度消失和梯度爆炸问题。ResNet-50是ResNet系列的一个变体,具有50层的深度,通过引入“残差块”...

    Oracle课堂笔记(很全很详细的Oracle笔记)

    - **Redo Log File (LOG)**: 用于记录所有对数据库所做的更改,以便恢复数据库。 - **Online Redo Logs**: 当前正在使用的重做日志文件。 - **Archive Redo Logs**: 已经归档的重做日志文件。 - **Parameter File ...

    rain-princess.ckpt

    rain-princess.ckpt

    linux oracle重新启动

    ### Linux环境下Oracle数据库重启知识点详解 #### 一、概述 在Linux环境中,Oracle数据库的管理是常见的运维操作之一。为了确保系统的稳定运行,有时需要重启Oracle数据库及其监听器。本文将详细介绍在Linux环境下...

Global site tag (gtag.js) - Google Analytics