当前位置: 首页 > news >正文

完全检查点 (normal checkpoint)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

完全检查点工作过程

一个checkpoint操作可以分成三个不同的阶段:

第一阶段,checkpoint进程开始一个checkpoint事件,并记录下checkpoint RBA,这个通常是当前的RBA。

第二阶段,checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘。

确定脏块都被写入磁盘以后进入到第三阶段,checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中。

更新SCN的操作由CKPT进程完成,在Oracle 8.0之后CKPT进程默认是被启用的,如果CKPT进程没有启用的话那相应的操作将由LGWR进程完成。

什么时候发生normal checkpoint

下面这些操作将会触发checkpoint事件:

日志切换,通过ALTER SYSTEM SWITCH LOGFILE。

DBA发出checkpoint命令,通过ALTER SYSTEM checkpoint。

对数据文件进行热备时,针对该数据文件的checkpoint也会进行,ALTER TABLESPACE TS_NAME BEGIN BACKUP/END BACKUP。

当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候。

SHUTDOWN命令发出时。

特别注意:

日志切换会导致checkpoint事件发生,但是checkpoint发生却不会导致日志切换。

日志切换触发的是normal checkpoint,而不是大家所说的增量checkpoint,只不过log switch checkpoint的优先级非常低,当一个log switch checkpoint发生的时候它并不会立即的通知DBWn进程去写数据文件,但是当有其它原因导致checkpoint或者是写入数据文件的RBA超过log switch checkpoint的checkpoint RBA的时候,这次的log switch checkpoint将会被标记成完成状态,同时更新控制文件和数据文件头。我们随后可以做个实验验证这个说法。

checkpoint和SCN有什么关系?

在Oracle中SCN相当于它的时钟,在现实生活中我们用时钟来记录和衡量我们的时间,而Oracle就是用SCN来记录和衡量整个Oracle系统的更改。

Oracle中checkpoint是在一个特定的“时间点”发生的,衡量这个“时间点”用的就是SCN,因此当一个checkpoint发生时SCN会被写入文件头中以记录这个checkpoint。

转载于:https://my.oschina.net/u/3635497/blog/3056665

相关文章:

  • name 'admin' is not defined第一个问题,新建Django项目,运行时报错
  • zxing 扫一扫 实用工具效率很高
  • Wireshark抓包工具使用
  • Android性能优化之APK瘦身详解(瘦身73%)
  • php课程 6-22 字符串格式化函数有哪些(精问)
  • java程序员进阶:618大战前夕,一条SQL引发的深思—MySQL优化
  • kafka 发送消息使用反射调用方法
  • kubernetes基础概念(第二节)
  • postMan测试https接口
  • 深入理解javascript系列(七):闭包(1)
  • Spring cloud 安全部署与性能优化
  • GEF入门实例_总结_06_为编辑器添加内容
  • CIKERS Shane 20190605
  • py 6.13
  • Amazon推新送货无人机Prime Air
  • ES6核心特性
  • HTTP中GET与POST的区别 99%的错误认识
  • iOS 颜色设置看我就够了
  • js
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Python学习之路13-记分
  • Redis的resp协议
  • Travix是如何部署应用程序到Kubernetes上的
  • 从零搭建Koa2 Server
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于web的全景—— Pannellum小试
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​HTTP与HTTPS:网络通信的安全卫士
  • # Java NIO(一)FileChannel
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (10)ATF MMU转换表
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • *** 2003
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 调用php,php 调用.net com组件 --
  • .Net(C#)自定义WinForm控件之小结篇
  • @ModelAttribute 注解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [C++]:for循环for(int num : nums)
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [CERC2017]Cumulative Code
  • [echarts] y轴不显示0