天天看点

增量检查点如何更新控制文件

原文:http://www.askmaclean.com/archives/incremental-checkpoint-update-controlfile.html Know more about checkpoint checkpoint 分成很多种 full 、file、thread、parallel query、 object 、incremental 、logfile switch 每一种checkpoint 都有其自身的特性,例如Incremental Checkpoint会要求ckpt 每3s 更新一次controlfile 但是不更新datafile header, 而FULL CHECKPOINT要求立即完成(同步的) 且会同时更新 controlfile 和 datafile header。 Incremental Checkpoint会要求ckpt 每3s 更新一次controlfile >>我想问的时:如何查看此时控制文件中更新的SCN?除了DUMP控制文件,有没有命令查询?

我希望通过以下演示说明该问题:

比较以上获得的2个前后有6s间隔的CONTROLFILE DUMP 文件:

排除部分V$RMAN_STATUS记录存在差异外,最主要的差别在于:

CHECKPOINT PROGRESS RECORDS 这是因为 ckpt 每3s一次对controlfile做heartbeat 更新 CHECKPOINT PROGRESS RECORDS。

第一次 controlf dump:

***************************************************************************

CHECKPOINT PROGRESS RECORDS

(size = 8180, compat size = 8180, section max = 11, section in-use = 0,

last-recid= 0, old-recno = 0, last-recno = 0)

(extent = 1, blkno = 2, numrecs = 11)

THREAD #1 – status:0×2 flags:0×0 dirty:56

low cache rba:(0x1a.3.0) on disk rba:(0x1a.121.0)

on disk scn: 0×0000.013fe7a8 07/22/2012 07:59:02

resetlogs scn: 0×0000.01394f1a 07/19/2012 07:27:21

heartbeat: 789262462 mount id: 2675014163

Flashback log tail log# 15 thread# 1 seq 229 block 274 byte 0

THREAD #2 – status:0×0 flags:0×0 dirty:0

low cache rba:(0×0.0.0) on disk rba:(0×0.0.0)

on disk scn: 0×0000.00000000 01/01/1988 00:00:00

resetlogs scn: 0×0000.00000000 01/01/1988 00:00:00

heartbeat: 0 mount id: 0

Flashback log tail log# 0 thread# 0 seq 0 block 0 byte 0

第二次 controlf dump:

THREAD #1 – status:0×2 flags:0×0 dirty:57

low cache rba:(0x1a.3.0) on disk rba:(0x1a.148.0)

on disk scn: 0×0000.013fe7c2 07/22/2012 07:59:27

heartbeat: 789262470 mount id: 2675014163

Flashback log tail log# 15 thread# 1 seq 229 block 275 byte 0

差异在于:

on disk rba

on disk scn

heartbeat

Flashback log tail log#

即实际CKPT每3s更新heartbeat控制文件一次,更新的内容是 on disk rba、on disk scn、heartbeat 如果启用了闪回日志的话那么还有Flashback log , 而并不更新数据库当前的SCN(CURRENT SCN)。

如果你想查看ckpt每3s更新的 on disk scn的话可以参考 内部视图X$KCCCP–[K]ernel [C]ache [C]ontrolfile management [c]heckpoint [p]rogress  X$KCCCP Checkpoint Progress Records:

其中cpods 为 ” on disk scn” ,cpodr_seq||cpodr_bno||cpodr_bof为”on disk rba”,CPHBT为heartbeat number: