nocatalog模式下rman備份下controlfile記錄備份資訊的一點探究

dotaddjj發表於2012-03-01

源於pub中的一篇帖子http://www.itpub.net/thread-1584375-1-1.html

delete obsolete; --能刪除7天前的備份
delete expired backup; --
不能刪除7天前的備份, 為什麼?

Rman有兩種備份策略,一種是基於時間的,預設的是認為7天的備份有效,還有一種是基於冗餘的,會認為最後一次的備份有效。

Delete obsolete會刪除過期的備份,而如果在物理上刪除的備份,還是會儲存在rman備份資訊中並置為有效,nocatalogcontrolfile保留備份集資訊,刪除的備份集資訊依然記載在controlfile中,只是用flag來標記狀態,這裡也明白了eygle說過的nocatalog模式下controlfile會越來越大,備份集資訊雖然delete了,但是實際的記錄資訊依然存在於controlfile中,只是標記為deleted狀態。這裡也說下與rman備份相關的資料字典檢視V$backup_set中記錄所有備份的資訊而不論是否存在或可用。

下面測試一下expiredobsolete的備份集在ctl中記錄變化

Backup database include current controlfile format ‘’

Plus archivelog format;

先做一個資料庫的全備份,然後dump controlfile檢視備份集資訊.flag並沒有什麼標記obselteexpired狀態

Alter session set events ‘immediate trace name controlf level 8’;

BACKUP PIECE RECORDS

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

(size = 736, compat size = 736, section max = 200, section in-use = 4,

last-recid= 4, old-recno = 1, last-recno = 4)

(extent = 1, blkno = 99, numrecs = 200)

Earliest record:

RECID #1 Recno 1 Record timestamp 03/01/12 13:19:09 piece #1 copy #1 pool 0

Backup set key: stamp=776783942, count=1

V$RMAN_STATUS: recid=160283880, stamp=160283876

Flags:

Device: DISK

Handle: D:ARCH_XIAOYU_20120301_1

Media-Handle:

Comment:

Tag: TAG20120301T131855

Completion time 03/01/12 13:20:06

然後在os上物理刪除備份集資訊,此時的controlfile中依然沒有標記備份集資訊為obsoleteexpired狀態,rman還沒有用crosscheck去檢索備份集狀態。

Backup set key: stamp=776783942, count=1

V$RMAN_STATUS: recid=160283880, stamp=160283876

Flags:

Device: DISK

Handle: D:ARCH_XIAOYU_20120301_1

Crosscheck backup檢查物理檔案上不存在的備份集然後標記controlfile中的flagexpired狀態

RECID #1 Recno 1 Record timestamp 03/01/12 13:19:09 piece #1 copy #1 pool 0

Backup set key: stamp=776783942, count=1

V$RMAN_STATUS: recid=160283880, stamp=160283876

Flags:

Device: DISK

Handle: D:ARCH_XIAOYU_20120301_1

Delete expired backup刪除rman認為存在廢棄的備份集,標記flagdeleted

RECID #1 Recno 1 Record timestamp 03/01/12 13:19:09 piece #1 copy #1 pool 0

Backup set key: stamp=776783942, count=1

V$RMAN_STATUS: recid=160283880, stamp=160283876

Flags:

Device: DISK

Handle:

那麼如果此時自己的測試庫中rman是基於冗餘的備份策略,此時自己backup datafile 1兩次,那麼應該有一個obsolete backup,檢視下controlfile記錄的狀態吧

RMAN> show all;

RMAN 配置引數為:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

兩次關於資料檔案1的備份都被標記為可用備份集,看來即使是obsolete狀態rman也不會在controlfile中標記flagobsolete狀態,僅僅只是針對crosscheck狀態掃描的出來的缺少物理檔案的標記expired和刪除的備份集為delete狀態。

Latest record:

RECID #8 Recno 8 Record timestamp 03/01/12 15:52:56 piece #1 copy #1 pool 0

Backup set key: stamp=776793174, count=8

V$RMAN_STATUS: recid=238730472, stamp=238730468

Flags:

Device: DISK

Handle: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAXIAOYUBACKUPSET2012_03_01O1_MF_NCSNF_TAG20120301T155228_7NYBPR1B_.BKP

Media-Handle:

Comment:

Tag: TAG20120301T155228

Completion time 03/01/12 15:52:56

RECID #6 Recno 6 Record timestamp 03/01/12 15:51:51 piece #1 copy #1 pool 0

Backup set key: stamp=776793109, count=6

V$RMAN_STATUS: recid=238730472, stamp=238730468

Flags:

Device: DISK

Handle: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAXIAOYUBACKUPSET2012_03_01O1_MF_NCSNF_TAG20120301T155123_7NYBNQNO_.BKP

Media-Handle:

Comment:

Tag: TAG20120301T155123

Completion time 03/01/12 15:51:52

RMAN> report obsolete;

RMAN 保留策略將應用於該命令

RMAN 保留策略設定為冗餘 1

已廢棄的備份和副本報表

型別 關鍵字 完成時間 檔名/控制程式碼

-------------------- ------ ------------------ --------------------

備份集 6 01-3 -12

備份段 6 01-3 -12 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_A

REAXIAOYUBACKUPSET2012_03_01O1_MF_NCSNF_TAG20120301T155123_7NYBNQNO_.BKP

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1057484/,如需轉載,請註明出處,否則將追究法律責任。

相關文章