




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、晶晶实验十之再论检查点篇上一篇/下一篇 2008-03-03 21:10:39 /个人分类:晶晶oracle实验系列查看(2707 ) /评论(45 ) 晶晶实验十之再论检查点篇在晶晶实验九中,主要讲述了增量检查点,他属于检查点的一种,除了增量检查点之外,还有 完全检查点和切换日志检查点下面分别论述一下1,增量检查点,增量检查点所涉及的主要概念,是一个队列一个进程队列是检查点队列,进程是CKPT进 程.CKPT进程有两项任务,一个是在一定的时机触发DBWR并告知DBWR的Target RBA,另一个任务是每3秒一次将DBWR的写进度更新到控制文件中.CKPT的这两个任务合在一 起,叫做-增量检
2、查点通常所说的触发增量检查点,是指CKPT进程通知DBWR刷新脏块这个操作.在10g中把log_checkpoint_to_alert 设置为真,可以在告警日志中观察到增量检查点的 触发在9I中看不到增量检查点,可以看到其他检查点的触发信息观察增量检查点:步骤1:SQL> alter system set log_checkpo in ts_to_alert=true;系统已更改。步骤2:将增量检查点的切换频率定为300秒SQL> alter system set log_checkpoint_timeout=300;单位是秒系统已更改。步骤3:查看告警日志中的增量检查点信息In
3、creme ntal checkpoi nt up to RBA 0x2b9.747.0,curre nt log tail at RBA 0x2b9.848.0Mon Mar 03 14:51:40 2008In creme ntal checkpoi nt up to RBA 0x2b9.855.0,curre nt log tail at RBA 0x2b9.876.0Mon Mar 03 14:56:43 2008In creme ntal checkpoi nt up to RBA 0x2b9.877.0,curre nt log tail at RBA 0x2b9.8f0.0Mon
4、 Mar 03 15:01:43 2008In creme ntal checkpoi nt up to RBA 0x2b9.8f5.0, curre nt log tail at RBA 0x2b9.d70.0Mon Mar 03 15:06:43 2008In creme ntal checkpoi nt up to RBA 0x2b9.d74.0, curre nt log tail at RBA 0x2b9.fd9.0Mon Mar 03 15:11:44 2008注:In creme ntal checkpoi nt( 增量检查点的意思 ”第1个RBA(增量检查点发生时当前的检 查点
5、位置)/第2个RBA(检查点发生时的当前的on disk rba);可以看到每5分钟一次检查点.另外可以通过v$kcccp视图观察当前的检查点位置.SQL> selectCPDRT,to_char(CPLRBA_SEQ,'xxxx').'|to_char(CPLRBA_BNO,'xxxxx').'|CPLRBA_BOF "Low 16",CPLRBA_SEQ.'|CPLRBA_BNO.'|CPLRBA_BOF "Low RBA",CPODR_SEQ.'|CPODR_BNO.
6、39;|CPODR_BOF "On disk RBA",CPODS,CPODT,CPHBT from x$kcccp where cphbt<>0;CPDRT Low 16Low RBAOn disk RBACPODSCPODTCPHBT26 2ba.9d.0698.157.0698.307.0236307603/03/2008 15:23:07648336376为了便于观察:Low 16是Low RBA 的16进制.注:在x$kcccp中看到的是 DBWR的写进度.当把log_checkpoints_to_alert这个参数设置为true后,可以在告警日志中看
7、到增量检查点的触发信息.2,日志切换时的检查点.当发生日志切换时,也会触发检查点.在数据库并不繁忙的情况下,日志切换的检查点并 不急于完成.之所以在日志切换的时候触发一次检查点,是为了保证重做日志文件所对应的脏块都被写进磁盘文件.如果写脏块的速度比较慢,日志文件循环一圈后,又该覆盖此日志文 件时,而此日志文件的检查点还没有完成,那么覆盖操作将等待.等待事件名:log fileswitch(checkpoi nt in complete).如果出现该等待事件,解决方法:1,可以增加日志文件组的数量.2,观察下增量检查点的间隔时间.如果是因为增量检查点间隔时间太长,导致积攒的脏块过多.可以把增量检
8、查点参数设置的频繁点.日志切换检查点除了会触发 DBWR写脏块外,CKPT进程还要将切换时的 SCN写进数 据文件头和控制文件中的数据库信息节,还有数据文件节另外还要将新的连机重做日志文件中第一条重做记录的 RBA写进数据文件头日志切换检查点写进数据文件头的SCN,可以通过v$datafile_header 视图查看.日志切换检查点写进控制文件中数据库信息节的SCN,可以通过v$database查看.日志切换检查点写进控制文件中的数据文件节中的SCN,可以通过v$datafile查看.先把log_checkpoints_to_alert这个参数设置为真,以便可以在告警日志中看到日志切换检查点的
9、相关信息.alter system set log_checkpo in ts_to_alert=true;实验:验证下当触发了日志切换检查点后,数据文件头,控制文件中的日志切换检查点信息都是什么:步骤一:查看当前数据文件头的SCNSQL> select checkpo in t_cha nge#,checkpo in t_time,checkpo in t_co unt from v$datafile_header;CHECKPOINT_CHANGE# CHECKPOINT_TIM CHECKPOINT_COUNT2372527 03-3月-086462372527 03-3月-086
10、092372527 03-3月-08646已选择11行。步骤二:查看当前控制文件中的数据库信息节的日志切换检查点信息SQL> select checkpo in t_cha nge# from v$database;CHECKPOINT_CHANGE#2372527步骤三:查看当前控制文件中的数据文件节中的日志切换检查点信息SQL> selectcheckpo in t_cha nge#,checkpo in t_time,last_cha nge#,last_time,substr( name,1,30) from v$datafile;CHECKPOINT_CHANGE# CH
11、ECKPOINT_TIM LAST_CHANGE# LAST_TIME SUBSTR(NAME,1,30)2372527 03-3 月-08E:ORACLEPRODUCT1020ORADA2372527 03-3 月-08E:0RACLEPR0DUCT10200RADA2372527 03-3 月-08E:0RACLEPR0DUCT10200RADA已选择11行。步骤四:查看当前SCNSQL> select dbms_flashback.get_system_cha nge_nu mber from dual;GET_SYSTEM_CHANGE_NUMBER2373997步骤五:手动触发
12、日志切换检查点SQL> alter system switch logfile;系统已更改。步骤六:查看日志切换后的数据文件头的SCNSQL> select checkpo in t_cha nge#,checkpo in t_time,checkpo in t_co unt from v$datafile_header;CHECKPOINT_CHANGE# CHECKPOINT_TIM CHECKPOINT_COUNT2372527 03-3 月-086462372527 03-3 月-086092372527 03-3 月-08646已选择11行。步骤七:查看日志切换后控制文件
13、中的数据库信息节的日志切换检查点信息SQL> select checkpo in t_cha nge# from v$database;CHECKPOINT_CHANGE#2372527步骤八:查看日志切换后控制文件中的数据文件节中的日志切换检查点信息SQL> selectcheckpo in t_cha nge#,checkpo in t_time,last_cha nge#,last_time,substr( name,1,30) from v$datafile;CHECKPOINT_CHANGE# CHECKPOINT_TIM LAST_CHANGE# LAST_TIME S
14、UBSTR(NAME,1,30)2372527 03-3 月-08E:0RACLEPR0DUCT10200RADA2372527 03-3 月-08E:0RACLEPR0DUCT10200RADA2372527 03-3 月-08E:0RACLEPR0DUCT10200RADA已选择11行。*由于普通测试机的I/O并不繁忙,看到的数据很有可能是没有发生变化的,这个时候可以查看告警日志发现Mon Mar 03 19:50:35 2008Begi nning log switch checkpoi nt up to RBA 0x2c0.2.10, SCN: 2374009Thread 1 adva
15、 need to log seque nee 704Curre nt log# 9 seq# 704 mem# 0: E:LOG9A.RDO此时的日志切换还为完成,数据文件头的日志切换的检查点和控制文件的日志切换检查点还 没来的急更新少等一会就会完成.oracle会根据机器的繁忙程度来决定什么时候完成日志切 换的检查点通常如果机器比较繁忙,oracle趋向于更急切的完成日志切换检查点.少等一会再次查看告警日志:Mon Mar 03 19:50:35 2008Begi nning log switch checkpoi nt up to RBA 0x2c0.2.10, SCN: 2374009T
16、hread 1 adva need to log seque nee 704Curre nt log# 9 seq# 704 mem# 0: E:LOG9A.RDOMon Mar 03 19:53:58 2008Completed checkpoi nt up to RBA 0x2c0.2.10, SCN: 2374009可以发现除了 beginning log switch chenkpoint夕卜,多了一个 completed checkpoint. 日志切换的检查点到此才真正的完成.由于我的实验环境并不繁忙,oracle拖了 3分钟才去真正的完 成日志切换检查点.此时再查看日志切换后的数
17、据文件头的SCNSQL> select checkpo in t_cha nge#,checkpo in t_time,checkpo in t_co unt from v$datafile_header;CHECKPOINT_CHANGE# CHECKPOINT_TIM CHECKPOINT_COUNT2374009 03-3月-086472374009 03-3月-086102374009 03-3月-08647再查看日志切换后控制文件中的数据库信息节的日志切换检查点信息SQL> select checkpo in t_cha nge# from v$database;CHEC
18、KPOINT_CHANGE#2374009再查看日志切换后控制文件中的数据文件节中的日志切换检查点信息SQL> selectcheckpo in t_cha nge#,checkpo in t_time,last_cha nge#,last_time,substr( name,1,30) from v$datafile;CHECKPOINT_CHANGE# CHECKPOINT_TIM LAST_CHANGE# LAST_TIMESUBSTR(NAME,1,30)2374009 03-3 月-08E:ORACLEPRODUCT1020ORADA2374009 03-3 月-08E:0RA
19、CLEPR0DUCT10200RADA2374009 03-3 月-08E:0RACLEPR0DUCT10200RADA*从结果可以看出日志切换时的SCN是2373997,而视图中所显示的2374009比2373997大了 12.这是因为手动查看 SCN和手动切换日志这两个命令间有个时间差.(忽略不计).由此可以证明,在日志切换时,CKPT写进数据文件和控制文件中的SCN,是切换命令开始时的SCN.在日志切换时,被写进数据文件头的并不只有SCN信息,还有RBA信息这个RBA是新的连机重做日志文件第一条重做记录的RBA.根据告警日志中的信息,此处是RBA0x2c0.2.10.上面所介绍的几个视图
20、中,没有显示RBA信息我们可以通过转储查看到这个 RBA.转储命令如下:SQL> alter sessi on set events 'immediate trace n ame file_hdrs level 10'会话已更改。转储数据文件头的结果:DATA FILE #1:(n ame #7) E:0RACLEPR0DUCT10200RADATA0NE10GSYSTEM01.DBFCheckpo inted at scn:0x0000.00243979 03/03/2008 19:50:35这些信息对应v$datafile_headerthread:1 rba 0x2
21、c0.2.10)*在转储文件中的每个数据文件相关信息中,都可以找到如上两行,这其中检查点SCN和时间戳,我们都已经在视图中看到了RBA信息,告警日志中显示的有,上述3个视图中并未显示出来转储控制文件的结果:这是控制文件中数据库信息节中的日志切换检查点信息:*DATABASE ENTRY*Database checkpo int: Thread=1 sen: 0x0000.00243979这些信息对应 v$database这是控制文件中的数据文件记录节,可以看到日志切换检查点SCN.DATA FILE #1:(n ame #7) E:ORACLEPRODUCT1020ORADATAONE10GSYSTEM01.DBFCheckpoi nt cnt:647 sen: 0x0000.00243979 03/03/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CCMA 0183-2024推土机排气污染物车载测量方法
- T/CCMA 0155-2023流动式起重机排气烟度汽车起重机和全地面起重机测量方法
- T/CCMA 0093-2020湿混凝土处理系统
- T/CCAS 013.1-2020水泥企业润滑管理第1部分:水泥企业润滑管理导则
- T/CATCM 024-2023中药农业固体废弃物循环利用指导原则
- T/CAQI 59-2018污(废)水生物处理移动床生物膜反应器系统工程技术规范
- T/CAQI 54-2018波轮式免污洗衣机
- T/CAQI 42-2018直饮水水站服务规范
- T/CAMIR 002-2022企业技术创新体系建设、管理与服务要求
- python代码面试题及答案
- 水电站扩建工程砂石加工系统施工组织设计
- 蒙牛冰淇淋经销商管理制度
- 2022年湛江市中考联考物理试题含解析
- 振动测量评价标准介绍
- 配方法练习题
- 外协出入库流程
- 复习:金属的化学性质
- 公路隧道斜井与正洞交叉口施工方法
- 出库单样本12623
- 卫生保洁检查表
- 年产10万吨氯乙烯工艺设计(共53页)
评论
0/150
提交评论