天天看點

增量檢查點如何更新控制檔案

原文: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: