【精品】检查点SCN深入研究

【精品】检查点SCN深入研究

ID:46310102

大小:81.50 KB

页数:8页

时间:2019-11-22

【精品】检查点SCN深入研究_第1页
【精品】检查点SCN深入研究_第2页
【精品】检查点SCN深入研究_第3页
【精品】检查点SCN深入研究_第4页
【精品】检查点SCN深入研究_第5页
资源描述:

《【精品】检查点SCN深入研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、检查点SCN深入研丸检查点概述大多数关系型数据库都采用“在捉交时并不强迫针对数据块的修改完成”而是“提交时保证修改记录(以重做口志的形式)写入日志文件”的机制,来获得性能的优势。这句话的另外一种描述是:当用户提交事务时,写数据文件是”异步”的,写日志文件是”同步“的。这就可能导致数据库实例崩溃时,内存屮的DB_Buffer中的修改过的数据,可能没有写入到数据块中。数据库在重新打开时,需要进行恢复,来恢复DBBuffer屮的数据状态,并确保已经捉交的数据被写入到数据块中。检杳点是这个过程中的重要机制,通过它来确定,恢复时哪些重做口志应该被扫描并应用于恢复。要了解这个检查点,首先要知道checkp

2、ointqueu概念,检查点发生后,触发dbwn,CKPT获取发生检查点时对应的SCN,通知DBWn要写到这个SCN为止,dbwr写dirtybuffer是根据buffer在被首次modify的时候的时间的顺序写出,也就是buffer被modify的时候会进入一个queue(checkpointqueue),dbwr就根据queue从其中批量地写到数据文件。由于这里有一个顺序的关系,所以dbwr的写的进度就是可衡量的,写到哪个buffer的吋候该buffer的首次变化时候的sen就是当前所有数IE文件block的最新sen,但是由于无法适时的将dbwr的进度记录下来,所以oracle选择了一些

3、策略。英屮就包括ckpt进程的检杳点和心跳。检查点发生以后,CKPT进程检查checkpointqueue(也就是脏块链表)是否过长,如果是,则触发DBWn,将一部分脏块写入数据文件,从而缩短checkpointqueueocheckpoint发生时,一方而通知dbwr进行下一批写操作,(dbwr写入的时候,一次写的块数是有一个批量写的隐藏参数控制的。)另一方面,oracle采用了一个心跳的概念,以3秒的频率将dbwr写的进度反应到控制文件中,也就是把dbwr当前刚写完的dirtybuffer对应的sen写入数据文件头和控制文件,这就是检查点sen。这个3秒和增量检查点不是一个概念,3秒只是在

4、控制文件屮,ckpt进程去更新当前dbwr写到哪里了,这个对于ckpt进程來说叫heartbeat,heartbeat是3秒一次,3秒可以看作不停的检查并记录检查点执行情况(DBWR的写进度)。检查点发生之后数据库的数据文件、控制文件处于一致状态的含义是不需要进行介质恢复,只表示数据文件头一致,但是并不表示数据文件内容一致,因为数据文件内容可能在没有发生检查点的其他情况下的dbwr写数据文件,这样数据文件内容就不一致,若掉电需耍进行崩溃恢复。二、触发的条件这里需要明片两个概念”完全检查点和增量检查点”的区别。增量检查点(incrementalcheckpoint)oracle8以后推出了inc

5、rementalcheckpoint的机制,在以前的版本一里每checkpoint时都会做一个fullthreadcheckpoint,这样的话所冇脏数据会被写到磁盘,巨大的i/o对系统性能带來很大影响。为了解决这个问题,oracle引入了checkpointqueue机制,每一个脏块会被移到检查点队列里面去,按照lowrdb(第一次对此块修改对应的redoblockaddress)来排列,靠近检查点队列尾端的数据块的lowrba值是最小的,而且如果这些赃块被再次修改后它在检查点队列里的顺序也不会改变,这样就保证了越早修改的块越早写入磁盘。每隔3秒钟ckpt会去更新控制文件和数据文件,记录ch

6、eckpoint执彳亍的情况。在运行的Oracle数据中,有很多事件、条件或者参数來触发检查点。比如当已通过正常事务处理或者立即选项关闭例程吋;(shutdownimmediate或者Shutdownnormal;)当通过设置初始化参数LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT和FAST_START_IO_TARGET强制时;当数据库管理员手动请求时;(ALtersystemcheckpoint)altertablespace...offline;每次日志切换时;(altersystemswitchlogfile)需耍说明的是,altersys

7、temswitchlogfile也将触发完全检查点的发生。alterdatabasedatafile...offline不会触发检杳点进程。如果是单纯的offlinedatafile,那么将不会触发文件检查点,只冇针对offlinetablespace的吋候才会触发文件检查点,这也是为什么onlinedatafile需要mediarecovery而onlinetablespace不需要。对丁•表空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。