• [每日一题] 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

      

  • 相关阅读:
    我的MSDN WEBCAST学习
    【EXCEL】数据制作技巧
    水晶报表分页实现方法 [转]
    注册Active Reports 去除红线
    随机文件文件的操作
    利用Visual Basic命令操作文件
    Crystal 语法概述[转]
    [转].NET面试题集
    表之间的连接关系
    php记录百度和google蜘蛛爬行程序代码日志
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3301570.html
Copyright © 2020-2023  润新知