检查点队列简单总结

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 检查点是恢复的起启点。

1、Oracle日志原理
REDO流(重做日志流)
RBA (重做字节地址由4部分组成:日志线程号、日志序列号、日志文件块编号和日志文件字节偏移量,长度为10个字节.例如Thread:1 RBA:0x000014.00000003.0010)
ckpt equeue :1.每3秒会触发检查脏块,2.每3秒检查ckpt equeue头的RBA,把检查队列头RBA写到控制文件)

  作用:(1).统计脏数据块
       (2).RBA按顺序排序,刷数据到磁盘就按这顺序
       (3).每个RBA除指向下一个RBA,还指向脏数据块地址

2、检查点队列(检查点只是一个数据库事件,它存在的根本意义在于减少崩溃恢复时间),在BH中有一个ckptq项,双向链表.
(1)只有脏块才会在检查点队列中,非脏块的ckptq为空。
(2)当块首次被更改时,块会立即被加进检查点队列。 如果检查点队列中的脏块再次被修改,并不会改变其在
检查点队列中的位置。
(3)检查点队列中脏块的排列顺序:根据第2点,所有脏块按照首次被更改的时间的顺序排列。 更准确点说:按
照块的lrba排列。

3、什么是RBA?LRBA?HRBA?ON DISK RBA?
(1)RBA:就是重做块地址
(2)LRBA:第一次对此数据块修改对应的Redo Block Address的顺序排列
(3)HRBA:相对于LRBA,后面修改的RBA
(4)on disk rba:磁盘中重做日志文件的最后一条重做记录的rba,是最高的重做值。

4、参与检查点的进程主要包括lgwr、dbwn和ckpt,分为两大类:完全检查点和增量检查点
(1)完全检查点主要包括以下步骤:
 ①首先,在日志缓冲中确定当前的(也就是最新的)重做记录,提取其RBA与SCN作为检查点目标
 ②LGWR清空日志缓存,将重作记录写入在线日志
 ③DBWn进程将检查点目标(RBA与SCN)产生的及检查点目标之前产生的脏数据块,按RBA的顺序写入数据文件
 ④最后,CKPT进程将检查点目标(RBA与SCN)写入数据文件的头部和控制文件

(2)触发完全检查点的条件:

①执行shutdown immediate命令
②执行alter system checkpoint命令
③LGWR切换在线日志,不论是因为日志写满还是执行alter system switch logfile命令
④执行部分表空间维护命令:alter tablespace ...offline|online|begin backup|end backup|read only|read write

5、增量检查点并不会去更新数据文件头,而只是每3秒由CKPT进程去更新控制文件中的LRBA和SCN
(1)增量检查点主要包含以下步骤

①CKPT每3秒一次记录检查点位置的工作(更新控制文件)
②CKPT定期触发DBWR

(2)增量检查点的意义有以下两个:
①减少发生完全检查点时DBWn进程的工作负担
②提高实例恢复的速度

6、CHECKPOINT 优化
(1)从9I开始CHECKPOINT的优化大大简化了

设置FAST_START_MTTR_TARGET
   较大的值:恢复时间较长
   较小的值:增加IO负载

(2)10g 的CHECKPOINT的自动优化
fast_start_mttr_target设置为非零的值或者不设置


show parameter mttr
alter system checkpoint;
alter system switch logfile;
select file#,checkpoint_change#,to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss') cpt from v$datafile;
select file#,checkpoint_change#,to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss') cpt from v$datafile_header;
select dbid,checkpoint_change# from v$database;
select group#,sequence#,status,first_change#,next_change# from v$log;
alter session set events 'immediate trace name controlf level 8';//CKPT每3秒写进控制文件的信息
grep "low cache rba" test_ora_22708.trc
/ low cache rba:(0x51.bef8.0)[检查点位置] on disk rba:(0x51.bf36.0)[最后一条重做记录的rba] /
alter session set events 'immediate trace name buffers level 2'; //BH(脏块)上有CHPTQ和FILEQ,非脏块为NULL
grep ckptq test_ora_22468.trc |grep -v NULL
grep ckptq test_ora_22468.trc

  /* ckptq: [0x60be41a8,0x60bf9d98] fileq: [0x60be41b8,0x60bf9da8]
    ckptq: [NULL] fileq: [NULL] */

alter session set events 'immediate trace name file_hdrs level 10';//控件文件与数据文件头
/* DATA FILE #5 控制文件

    V10 STYLE FILE HEADER: 数据文件头
 status:0x4 root dba:0x00000000 chkpt cnt: 106 ctl cnt:105*/
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
|
编译器 C语言 C++
C/C++内存对齐规则(结构体、联合体、类)
C/C++内存对齐规则(结构体、联合体、类)
|
并行计算 Java 大数据
深度探索:Python异步编程如何优雅征服IO密集型任务,让CPU密集型任务也臣服!
【7月更文挑战第17天】Python的异步编程借助`asyncio`库提升IO密集型任务效率,如并发下载网页,通过`async def`定义协程,`asyncio.gather`并发执行。在CPU密集型任务中,结合`ThreadPoolExecutor`实现并行计算,利用多核优势。`asyncio.run`简化事件循环管理,使Python在高负载场景下表现更佳。
286 4
|
人工智能 新能源 BI
关于举办“2024年第四届全国大学生技术创新创业大赛”的通知
中国技术创业协会企业市场融通工作委员会将举办“2024年第四届全国大学生技术创新创业大赛”。大赛以“创新驱动,赋能就业”为目标,促进学生的创新创造能力,普及创新创业知识,拓宽就业创业渠道,挖掘创新人才,培育多元化的未来产业推进力量。
800 0
|
Prometheus 监控 Cloud Native
grafana展示的CPU利用率与实际不符的问题探究
观察到`mpstat`命令显示单核CPU的`%usr`和`%sys`分别持续在70%和20%,而Grafana监控数据显示较低。问题源于Grafana表达式计算的是CPU时间增量而非利用率。`mpstat`通过`/proc/stat`获取数据并计算CPU利用率,而`node-exporter`直接导出原始数据。调整Grafana表达式以匹配`mpstat`的计算方式后,两者结果一致。解决方案是修正Grafana查询以准确反映CPU占用率。
619 1
grafana展示的CPU利用率与实际不符的问题探究
|
数据采集 算法 数据可视化
【优秀python算法设计】基于Python网络爬虫的今日头条新闻数据分析与热度预测模型构建的设计与实现
本文设计并实现了一个基于Python网络爬虫和机器学习模型的今日头条新闻数据分析与热度预测系统,通过数据采集、特征工程、模型构建和可视化展示,挖掘用户行为信息和内容特征,预测新闻热度,为内容推荐和舆情监控提供决策支持。
731 0
【优秀python算法设计】基于Python网络爬虫的今日头条新闻数据分析与热度预测模型构建的设计与实现
|
Kubernetes Docker 容器
【Docker专栏】Docker网络配置详解:从Bridge到Overlay
【5月更文挑战第7天】本文介绍了Docker的四种网络类型:Bridge(默认,每个容器连接虚拟桥)、Host(容器共享宿主机网络命名空间)、Overlay(跨宿主机通信,适合集群环境)和Macvlan(容器直接连接物理网络)。Bridge网络适用于同主机通信,而Overlay适合多主机集群。Host网络缺乏隔离,Macvlan则让容器直接连到外部网络。理解这些网络类型有助于优化Docker容器的网络配置。
798 8
【Docker专栏】Docker网络配置详解:从Bridge到Overlay
|
存储 SQL 缓存
N+1查询问题详解与应对策略
【8月更文挑战第21天】
952 0
|
Java Spring
在Spring Boot中,可以通过控制`@PostConstruct`注解方法的执行顺序来实现初始化时的顺序控制
在Spring Boot中,可以通过控制`@PostConstruct`注解方法的执行顺序来实现初始化时的顺序控制
1110 1
|
机器学习/深度学习 分布式计算 数据挖掘
淘宝/天猫店铺商品详情 API 实现实时数据获取:快速、稳定、高效
淘宝/天猫是中国最大的电商平台之一,拥有海量的商品数据。对于商家来说,了解店铺内所有商品的实时信息非常重要,可以帮助他们更好地管理商品、制定营销策略等。本文将介绍如何使用淘宝/天猫的API接口来获取店铺的所有商品信息,并实现实时数据获取。