欢迎来到天天文库
浏览记录
ID:35478215
大小:58.08 KB
页数:3页
时间:2019-03-25
《oracle深度解析检查点》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、oracle深度解析检查点作者:网络转载发表于:[2011-11-3011:05:22]由于LGWR和DBWR工作的不一致,Oracle引入了检查点的概念,用于同步,保证数据库的一致性。在Oracle里面,检查点分为两种:完全检查点和增量检查点。下面我们分别介绍这两种检查点的作用:1、完全检查点在0racleSi之前,数据库的发生的检查点都是完全检查点,完全检查点会将数据缓冲区里面所有的脏数据块写入相应的数据文件中,并且同步数据文件头和控制文件,保证数据库的一致。完全检查点在8i之后只有在下列两种情况下才会发生:(1)DBA手工执行al
2、tersystemcheckpoint的命令;(2)数据库正常shutdown(immediate,transcational,normal)。rtl于完全检查点会将所有的脏数据库块写入,巨大的10往往会影响到数据库的性能。因此Oracle从8i开始引入了增量检查点的概念。2、增量检查点Oracle从8i开始引入了检查点队列这么一种概念,用于记录数据库里面当前所有的脏数据块的信息,DBWR根据这个队列而将脏数据块写入到数据文件中。检查点队列按时间先后记录着数据库里面脏数据块的信息,里面的条目包含RBA(RedoBlockAddress,
3、重做Fl志里面用于标识检查点期间数据块在重做Fl志里面第一次发生更改的编号)和数据块的数据文件号和块号。在检查点期间不论数据块更改几次,它在检查点队列里面的位置始终保持不变,检查点队列也只会记录它最早的RBA,从而保证最早更改的数据块能够尽快写入。当DBWR将检查点队列里面的脏数据块写入到数据文件后,检查点的位置也要相应地往后移,CKPT每三秒会在控制文件中记录检查点的位置,以表示InstanceRecovery时开始恢复的日志条目,这个概念称为检查点的“心跳”(heartbeat)o检查点位置发生变更后,Oracle里面通过4个参数用
4、于控制检查点位置和最后的重做日志条目之间的距离。在这里面需要指出的是,多数人会将这4个参数看作控制增量检查点发生的时间。事实上这是错误的,这4个参数是用于控制检查点队列里面的条冃数量,而不是控制检查点的发生。(1)faststartiotarget该参数用于表示数据库发生InstanceRecovery的时候需要产生的I0总数,它通过v$filestat的AVGIOTIM来估算的。比如我们一个数据库在发生InstanceCrash后需要在10分钟内恢复完毕,假定OS的IO每秒为500个,那么这个数据库发生InstanceRecovery
5、的时候大概将产生500*10*60=30,000次IO,也就是我们将可以把faststartiotarget设置为30000。(2)faststartmttrtarget我们从上面iij以看到fast_start_io_target来估算检查点位置比较麻烦。Oracle为了简化这个概念,从9i开始引入了fast_start_mttr_target这么一个参数,用于表示数据库发生InstanceRecovery的时间,以秒为单位。这个参数我们从字面上也比较好理解,其中的mttr是meantimetorecovery的简写,如上例中的情况我
6、们对以将fast_start_mttr_target设置为600。当设置了fast_start_mttr_target后,faststartiotarget这个参数将不再生效,从9i后fast_startiotarget这个参数被Oracle废除了。(3)logcheckpointtimeout该参数用于表示检查点位置和重做H志文件末尾Z间的时间间隔,以秒为单位,默认情况下是1800秒。(1)log_checkpoint_interval该参数是表示检查点位置和重做Fl志末尾的重做Fl志块的数量,以OS块表示。(2)90%OFSMALL
7、ESTREDOLOG除了以上4个初始化参数外,Oracle内部事实上还将重做日志文件末尾前面90%的位置设为检查点位置。在每个重做日志中,这么几个参数指定的位置可能不尽相同,Oracle将离口志文件末尾最近的那个位置确认为检查点位置。oracle深度解析检査点作者:网络转载发表于:[2011-11-3011:05:22]oracle9iinstancerecovery1、增量检查点在checkpointqueue的基础上实现了增量检查点,每3秒发生一次checkpointheartbeat,记录dbwr±次写成功的最大RBA(redob
8、lockaddress)o这样的话做instancerecovery的时候就从这个rba开始,而不是从上次checkpointsen开始,大大节省了恢复吋间。2、twicescanofredolog在应用r
此文档下载收益归作者所有