ITPub博客

首页 > 数据库 > Oracle > nocatalog模式下rman备份下controlfile记录备份信息的一点探究

nocatalog模式下rman备份下controlfile记录备份信息的一点探究

原创 Oracle 作者:dotaddjj 时间:2012-03-01 19:53:09 0 删除 编辑

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

delete obsolete; --能删除7天前的备份
delete expired backup; --
不能删除7天前的备份, 为什么?

Rman有两种备份策略,一种是基于时间的,默认的是认为7天的备份有效,还有一种是基于冗余的,会认为最后一次的备份有效。

Delete obsolete会删除过期的备份,而如果在物理上删除的备份,还是会存储在rman备份信息中并置为有效,nocatalog下controlfile保留备份集信息,删除的备份集信息依然记载在controlfile中,只是用flag来标记状态,这里也明白了eygle说过的nocatalog模式下controlfile会越来越大,备份集信息虽然delete了,但是实际的记录信息依然存在于controlfile中,只是标记为deleted状态。这里也说下与rman备份相关的数据字典视图V$backup_set中记录所有备份的信息而不论是否存在或可用。

下面测试一下expired和obsolete的备份集在ctl中记录变化

Backup database include current controlfile format ‘’

Plus archivelog format;

先做一个数据库的全备份,然后dump controlfile查看备份集信息.flag并没有什么标记obselte和expired状态

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中依然没有标记备份集信息为obsolete或expired状态,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中的flag为expired状态

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认为存在废弃的备份集,标记flag为deleted。

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中标记flag为obsolete状态,仅仅只是针对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博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1057484/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 北漂求职第一记
请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662970