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

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信息,也就是检查点的位置。

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。 相关操作:

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;
 create table t2(id int, name varchar2(50));
begin
for i in 1..10000 loop
insert into  t2 values(1,'xkj');
commit;
end loop;
end;
select * from t2;
alter system flush buffer_cache;

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

实例崩溃恢复原理分析:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Nicky's blog

Oracle AWR报告生成和性能分析

对于SQL调优,局部SQL,我们可以直接使用执行计划等直接调优,而对于整个系统来说?这时候就可以用Oracle系统自带的报告对系统进行整体分析了,Oracle提...

14830
来自专栏人称T客

财报前瞻:在甲骨文公布第三财季报告前,市场情绪喜忧参半

软件解决方案供应商甲骨文公司(Oracle)将于3月14日收盘后公布第三财季业绩。市场预计,该公司二月每股收益将从去年的0.83美元小幅升至0.84美元。预计收...

10030
来自专栏人称T客

2019年的Oracle,变并纠结着

可能是个中国人,都会熟悉沃伦·巴菲特(Warren Buffett)和他的伯克希尔哈撒韦公司(Berkshire Hathaway Incorporation)...

19820
来自专栏Java架构筑基

分享7个免费学习Java的优秀在线网站

作为世界上最流行的编程语言之一,Java运行在超过150亿台设备上,并且在规模和影响力方面拥有无与伦比的开发人员社区。虽然一开始尝试学习Java看起来有点困难,...

73930
来自专栏MixLab科技+设计实验室

我是如何学习写代码的?v2

「 代码 」对于我来说,如同「 设计 」一样,都是为了「 创造 」 出某种产品的一种手段。

24750
来自专栏人称T客

一枝独秀,报告显示SAP依然引领一线ERP市场

长久以来,SAP、Oracle等公司一直就是整个ERP的代名词,但随着云计算与云ERP的兴起,人们普遍看好后者会超越前者,甚至连Salesforce和Workd...

15130
来自专栏人称T客

SAP HANA 大裁员?命途多舛?

嗟乎!时运不齐,命途多舛,冯唐易老,李广难封。本来不想写这些花边新闻,但流言并非止于智者,由于SAP这个庞大的且喜欢八卦的群体,宣传力度太大,我觉得放到过去,大...

24810
来自专栏人称T客

软件行业没落?2019路在何方?

2018年已经过去,2019年软件行业到底要走向哪里?成为业内关注的焦点,悲观者有之,认为软件行业已经到了尽头,已过了他的巅峰之年。乐观者有之,认为中国市场还没...

16120
来自专栏人称T客

壮士断腕?甲骨文裁员是为了重振其云端的雄心吗?

过去一周,不少社交媒体和论坛上的许多帖子都提到了甲骨文(Oracle)裁员的事情,这些人声称自己被甲骨文解雇了,或者了解其他人被甲骨文解雇的事情。目前,该裁员风...

8320
来自专栏bisal的个人杂货铺

Oracle和PG的count

曾经测试过Oracle 11g下count(*)、count(1)、count(主键列)和count(包含空值的列)这几种操作,究竟有何区别,结论如下,

15250

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励