日期:2014-05-16  浏览次数:20465 次

[每日一题] 11gOCP 1z0-052 :2013-09-3 Because of frequent checkpoints...........................A30

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11022433

正确答案:BC

 这里我就偷一下懒了,引用

http://www.itpub.net/thread-1813872-1-1.html

itpub 7楼一位兄弟的解释

 

我个人认为是这样的:
checkpoint过程
1、checkpoint触发条件,记录rba,rba包括cache low rba和on disk rba,这里指的是on disk rba(lgwr 最后写日志文件的地址)
2、checkpoint进程通知DBWn进程将所有cache low rba和on disk rba之间的脏块写入磁盘
3、确定脏块都被写入磁盘以后,更新checkpoint信息到数据文件和控制文件中。

normal checkpoint触发条件
1、alter system switch logfile(自动或手动)。
2、alter system checkpoint。
3、alter tablespace tablespace_name begin backup或alter tablespace tablespace_name end backup。
4、alter tablespace tablespace_name read only。
5、shutdown。

increment checkpoint触发条件
1、fast_start_mttr_target
2、log_checkpoint_timeout
3、log_checkpoint_interval
4、90% OF SMALLEST REDO LOG

综上所述,答案应该是b和c,如果redo size过小,那么会频繁的切换,从而导致频繁的checkpoint;如果fast_start_mttr_target设置的过小,比如设置为1,那么就意味着数据库估算的恢复时间超过1秒就会产生checkpoint,也会频繁的产生checkpoint,答案d只会解决磁盘些的性能问题,而不是checkpoint切换的内存问题,答案a是不可能的。

 


我对检查点的一点补充:


检查点队列(检查点只是一个数据库事件,它存在的根本意义在于减少崩溃恢复时间),在BH中有一个ckptq项,双向链表.

  (1)只有脏块才会在检查点队列中,非脏块的ckptq为空。

  (2)当块首次被更改时,块会立即被加进检查点队列。 如果检查点队列中的脏块再次被修改,并不会改变其在

检查点队列中的位置。

  (3)检查点队列中脏块的排列顺序:根据第2点,所有脏块按照首次被更改的时间的顺序排列。 更准确点说:按

 照块的lrba排列。


参与检查点的进程主要包括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


增量检查点并不会去更新数据文件头,而只是每3秒由CKPT进程去更新控制文件中的LRBA和SCN
 (1)增量检查点主要包含以下步骤
    ①CKPT每3秒一次记录检查点位置的工作(更新控制文件)
    ②CKPT定期触发DBWR
 (2)增量检查点的意义有以下两个:
   ①减少发生完全检查点时DBWn进程的工作负担
   ②提高实例恢复的速度


QQ:252803295

学习交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(技术:已满)
DSI&Core Search  Ⅱ 群:177089463(技术:未满)
DSI&Core Search  Ⅲ 群:284596437(技术:未满)
DSI&Core Search  Ⅳ 群:192136702(技术:未满)
DSI&Core Search  Ⅴ 群:285030382(闲聊:未满)



MAIL:oracledba_cn@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM