首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >相克军_Oracle体系_随堂笔记009-检查点队列

相克军_Oracle体系_随堂笔记009-检查点队列

作者头像
Alfred Zhao
发布2019-05-24 20:19:14
发布2019-05-24 20:19:14
7030
举报

1、检查点队列 checkpoint queue

RBA 日志块地址 redo block address

LRBA 第一次被脏的地址

HRBA 最近一次被脏的地址

on disk rba 重做日志(current redo log)中最后一条日志的地址

数据块里有两个地址,LRBA,HRBA.

checkpoint queue 按照脏块第一次脏的时间链起来。

checkpoint queue就是按照数据块的LRBA地址链起来的。

2、CKPT进程 每隔3秒钟触发一次 记录检查点信息 触发DBWR进程

完全检查点:会触发将所有脏块写入磁盘。

只有正常关闭的时候才会发生完全检查点。正常运行期间基本不会发生完全检查点。

增量检查点:ckpt会将检查点队列的第一个最早脏的数据块所对应的(LRBA)日志地址记录到控制文件中。增量检查点每隔3秒钟会发生一次。

当增量检查点发生时,ckpt会将检查点队列的第一块最早脏的,所对应的日志地址记录到控制文件中。

当增量检查点发生时,发现checkpoint queue太长,I/O也不太忙的话,会触发DBWn,部分写到磁盘上,以缩短checkpoint queue的长度。

DBWn写,根据LRUW写

checkpoint queue 很长的时候,也会适当的触发DBWn写。

On disk RBA

3、增量检查点并不会去更新数据文件头,以及控制文件中数据库SCN以及数据文件条目的SCN信息,而只是每3秒由CKPT进程去更新控制文件中的low cache rba信息,也就是检查点的位置。

代码语言:javascript
复制
select CPDRT,CPLRBA_SEQ||'.'||CPLRBA_BNO||'.'||CPLRBA_BOF "LowRBA",CPODR_SEQ||'.'||CPODR_BNO||'.'||CPODR_BOF "On disk RBA",CPODS,CPODT,CPHBT from x$kcccp;

CPDRT列是检查点队列中的脏块数目. CPODS列是on disk rba的scn CPODT列是on disk rba的时间戳 CPHBT列是心跳 如果发生了实例崩溃,只需要在日志文件中找到检查点位置(low cache rba),从此处开始应用所有的重做日志文件,就完成了前滚操作。实例崩溃后,再次启动数据库,oracle会到控制文件中读取low cache rba,这就是检查点位置。从此处开始应用重做日志,应用到on disk rba的位置。on disk rba是磁盘中重做日志文件的最后一条重做记录的rba。 相关操作:

代码语言:javascript
复制
select checkpoint_change# from v$database;
alter system checkpoint;
alter system switch logfile;
select name,checkpoint_change# from v$datafile ;
select name,checkpoint_change# from v$datafile_header;
select * from v$log;
代码语言:javascript
复制
 create table t2(id int, name varchar2(50));
代码语言:javascript
复制
begin
for i in 1..10000 loop
insert into  t2 values(1,'xkj');
commit;
end loop;
end;
代码语言:javascript
复制
select * from t2;
代码语言:javascript
复制
alter system flush buffer_cache;

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

实例崩溃恢复原理分析:

检查点队列的意义:找到跑日志的起点,加快实例崩溃后oracle的启动速度。oracle 8之前,没有检查点队列,确定不了日志的起点,要跑很多日志,启动速度很慢。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-07-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档