晶晶实验十再论检查点篇_第1页
晶晶实验十再论检查点篇_第2页
晶晶实验十再论检查点篇_第3页
晶晶实验十再论检查点篇_第4页
晶晶实验十再论检查点篇_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

晶晶实验十之再论检查点篇上一篇/下一篇2008-03-0321:10:39/个人分类:晶晶oracle实验系列查察(2707)/谈论(45)晶晶实验十之再论检查点篇在晶晶实验九中,主要表达了增量检查点,他属于检查点的一种,除了增量检查点之外,还有完好检查点和切换日志检查点.下面分别阐述一下.1,增量检查点

,增量检查点所波及的主要见解,是一个行列一个进度.行列是检查点行列,进度是CKPT进程.CKPT进度有两项任务,一个是在必然的机会触发DBWR并见告DBWR的TargetRBA,另一个任务是每3秒一次将DBWR的写进度更新到控制文件中.CKPT的这两个任务合在一起,叫做--增量检查点.平常所说的触发增量检查点,是指CKPT进度通知DBWR刷新脏块这个操作.在10g中把log_checkpoint_to_alert设置为真,能够在告警日志中察看到增量检查点的触发.在9I中看不到增量检查点,能够看到其他检查点的触发信息.察看增量检查点:步骤1:SQL>altersystemsetlog_checkpoints_to_alert=true;系统已更正。步骤2:将增量检查点的切换频次定为300秒.SQL>altersystemsetlog_checkpoint_timeout=300;[单位是秒]系统已更正。步骤3:查察告警日志中的增量检查点信息....IncrementalcheckpointuptoRBA[0x2b9.747.0],currentlogtailatRBA[0x2b9.848.0]MonMar0314:51:402008IncrementalcheckpointuptoRBA[0x2b9.855.0],currentlogtailatRBA[0x2b9.876.0]MonMar0314:56:432008IncrementalcheckpointuptoRBA[0x2b9.877.0],currentlogtailatRBA[0x2b9.8f0.0]MonMar0315:01:432008IncrementalcheckpointuptoRBA[0x2b9.8f5.0],currentlogtailatRBA[0x2b9.d70.0]MonMar0315:06:432008IncrementalcheckpointuptoRBA[0x2b9.d74.0],currentlogtailatRBA[0x2b9.fd9.0]MonMar0315:11:442008...注:Incrementalcheckpoint(增量检查点的意思)/第1个RBA(增量检查点发生时目前的检查点地址)/第2个RBA(检查点发生时的目前的ondiskrba);能够看到每5分钟一次检查点.其他能够经过v$kcccp视图察看目前的检查点地址.SQL>selectCPDRT,to_char(CPLRBA_SEQ,'xxxx')||'.'||to_char(CPLRBA_BNO,'xxxxx')||'.'||CPLRBA_BOF"Low16",CPLRBA_SEQ||'.'||CPLRBA_BNO||'.'||CPLRBA_BOF"LowRBA",CPODR_SEQ||'.'||CPODR_BNO||'.'||CPODR_BOF"OndiskRBA",CPODS,CPODT,CPHBTfromx$kcccpwherecphbt<>0;CPDRTLow16LowRBAOndiskRBACPODSCPODTCPHBT----------------------------------------------------------------------------------------------------------262ba.236307603/03/200815:23:07648336376为了便于察看

:Low16

LowRBA

的16进制.注:在

x$kcccp

中看到的是

DBWR

的写进度

.当把

log_checkpoints_to_alert

这个参数设置为

true

后,能够在告警日志中看到增量检查点的触发信息

.2,日志切换时的检查点.当发寿辰记切换时,也会触发检查点.在数据库其实不忙碌的情况下,日志切换的检查点并不急于达成

.之所以在日志切换的时候触发一次检查点

,是为了保证重做日志文件所对应的脏块都被写进磁盘文件

.若是写脏块的速度比较慢

,日志文件循环一圈后

,又该覆盖这天记文件时,而这天记文件的检查点还没有达成

,那么覆盖操作将等待

.等待事件名

:logfileswitch(checkpointincomplete).若是出现该等待事件,解决方法:1,能够增加日志文件组的数量.2,察看下增量检查点的间隔时间.若是是由于增量检查点间隔时间太长,致使积攒的脏块过多.能够把增量检查点参数设置的频频点.日志切换检查点除了会触发DBWR写脏块外,CKPT进度还要将切换时的SCN写进数据文件头和控制文件中的数据库信息节,还有数据文件节.其他还要将新的连机重做日志文件中第一条重做记录的RBA写进数据文件头.日志切换检查点写进数据文件头的SCN,能够经过v$datafile_header视图查察.日志切换检查点写进控制文件中数据库信息节的SCN,能够经过v$database查察.日志切换检查点写进控制文件中的数据文件节中的SCN,能够经过v$datafile查察.先把log_checkpoints_to_alert这个参数设置为真,以便能够在告警日志中看到日志切换检查点的有关信息.altersystemsetlog_checkpoints_to_alert=true;实验:考证下当触发了日志切换检查点后,数据文件头,控制文件中的日志切换检查点信息都是什么:步骤一:查察目前数据文件头的SCNSQL>selectcheckpoint_change#,checkpoint_time,checkpoint_countfromv$datafile_header;CHECKPOINT_CHANGE#CHECKPOINT_TIMCHECKPOINT_COUNT------------------------------------------------237252703-3月-08646237252703-3月-08609237252703-3月-08646......已选择11行。步骤二:查察目前控制文件中的数据库信息节的日志切换检查点信息SQL>selectcheckpoint_change#fromv$database;CHECKPOINT_CHANGE#------------------2372527步骤三:查察目前控制文件中的数据文件节中的日志切换检查点信息SQL>selectcheckpoint_change#,checkpoint_time,last_change#,last_time,substr(name,1,30)fromv$datafile;CHECKPOINT_CHANGE#CHECKPOINT_TIMLAST_CHANGE#LAST_TIMESUBSTR(NAME,1,30)-----------------------------------------------------------------------------------------------------237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA......已选择11行。步骤四:查察目前SCNSQL>selectdbms_flashback.get_system_change_numberfromdual;GET_SYSTEM_CHANGE_NUMBER------------------------2373997步骤五:手动触发日志切换检查点SQL>altersystemswitchlogfile;系统已更正。步骤六:查察日志切换后的数据文件头的SCNSQL>selectcheckpoint_change#,checkpoint_time,checkpoint_countfromv$datafile_header;CHECKPOINT_CHANGE#CHECKPOINT_TIMCHECKPOINT_COUNT------------------------------------------------237252703-3月-08646237252703-3月-08609237252703-3月-08646......已选择11行。步骤七:查察日志切换后控制文件中的数据库信息节的日志切换检查点信息SQL>selectcheckpoint_change#fromv$database;CHECKPOINT_CHANGE#------------------2372527步骤八:查察日志切换后控制文件中的数据文件节中的日志切换检查点信息SQL>selectcheckpoint_change#,checkpoint_time,last_change#,last_time,substr(name,1,30)fromv$datafile;CHECKPOINT_CHANGE#CHECKPOINT_TIMLAST_CHANGE#LAST_TIMESUBSTR(NAME,1,30)---------------------------------------------------------------------------------------------------------237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237252703-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA......已选择11行。**由于一般测试机的I/O其实不忙碌,看到的数据很有可能是没有发生变化的,这个时候能够查看告警日志.发现MonMar0319:50:352008BeginninglogswitchcheckpointuptoRBA[0x2c0.2.10],SCN:2374009Thread1advancedtologsequence704此时的日志切换还为达成,数据文件头的日志切换的检查点和控制文件的日志切换检查点还没来的急更新.少等一会就会达成.oracle会依照机器的忙碌程度来决定什么时候达成日志切换的检查点.平常若是机器比较忙碌,oracle趋向于更急迫的达成日志切换检查点.少等一会再次查察告警日志

:MonMar0319:50:352008BeginninglogswitchcheckpointuptoRBA[0x2c0.2.10],SCN:2374009Thread1advancedtologsequence704MonMar0319:53:582008CompletedcheckpointuptoRBA[0x2c0.2.10],SCN:2374009能够发现除了beginninglogswitchchenkpoint外,多了一个completedcheckpoint.日志切换的检查点到此才真实的达成.由于我的实验环境其实不忙碌,oracle拖了3分钟才去真实的完成日志切换检查点.此时再查察日志切换后的数据文件头的SCNSQL>selectcheckpoint_change#,checkpoint_time,checkpoint_countfromv$datafile_header;CHECKPOINT_CHANGE#CHECKPOINT_TIMCHECKPOINT_COUNT------------------------------------------------237400903-3月-08647237400903-3月-08610237400903-3月-08647......再查察日志切换后控制文件中的数据库信息节的日志切换检查点信息SQL>selectcheckpoint_change#fromv$database;CHECKPOINT_CHANGE#------------------2374009再查察日志切换后控制文件中的数据文件节中的日志切换检查点信息SQL>selectcheckpoint_change#,checkpoint_time,last_change#,last_time,substr(name,1,30)fromv$datafile;CHECKPOINT_CHANGE#CHECKPOINT_TIMLAST_CHANGE#LAST_TIMESUBSTR(NAME,1,30)--------------------------------------------------------------------------------------------------------237400903-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237400903-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA237400903-3月-08E:\ORACLE\PRODUCT\10.2.0\ORADA......****从结果能够看出日志切换时的SCN是2373997,而视图中所显示的2374009比2373997大了12.这是由于手动查察SCN和手动切换日志这两个命令间有个时间差.(忽略不计).由此能够证明,在日志切换时,CKPT写进数据文件和控制文件中的SCN,是切换命令开始时的SCN.在日志切换时,被写进数据文件头的其实不单有SCN信息,还有RBA信息.这个RBA是新的连机重做日志文件第一条重做记录的RBA.依照告警日志中的信息,此处是RBA[0x2c0.2.10].上面所介绍的几个视图中,没有显示RBA信息.我们能够经过转储查察到这个RBA.转储命令以下:SQL>altersessionsetevents'immediatetracenamefile_hdrslevel10';会话已更正。转储数据文件头的结果:DATAFILE#1:...Checkpointedatscn:0x0000.0024397903/03/200819:50:35[这些信息对应v$datafile_header]thread:1rba0x2c0.2.10)...在转储文件中的每个数据文件有关信息中,都能够找到如上两行,这其中检查点SCN和时间戳,我们都已经在视图中看到了.RBA信息,告警日志中显示的有,上述3个视图中并未显示出来.转储控制文件的结果:这是控制文件中数据库信息节中的日志切换检查点信息:***************************************************************************DATABASEENTRY***************************************************************************...Databasecheckpoint:Thread=1scn:0x0000.00243979[这些信息对应v$database]...这是控制文件中的数据文件记录节,能够看到日志切换检查点SCN.DATAFILE#1:...Checkpointcnt:647scn:0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论