用于rman备份的存储进行空间调整,重新创建了备份目录。在备份目录/crmbak被删除之前,没有先使用rman进行备份的清理,在重新创建并挂载该目录之后,导致控制文件中的rman信息失效,需要crosscheck。相当于在操作系统上直接把备份文件给删除了。但是在执行的时候却报错了,报的RMAN-06207错误。报错也正常,但是奇怪的是crosscheck只能针对一个备份片或者备份集。不能对多个。也没找到相关的资料或者说法。
$rman target / nocatalog
RMAN> crosscheck backup of archivelog all ;
using channel ORA_DISK_1
RMAN>
RMAN> report obsolete ;
RMAN retention policy will be applied to the command
RMAN retention policy is set to recovery window of 8 days
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 22 28-FEB-09
Backup Piece 71 28-FEB-09
/crmbak/archivelog/RMAN_ARCH75680364012.arc
Backup Set 23 28-FEB-09
Backup Piece 72 28-FEB-09
/crmbak/archivelog/RMAN_ARCH76680367633.arc
Backup Set 24 28-FEB-09
Backup Piece 73 28-FEB-09
/crmbak/archivelog/RMAN_ARCH77680371224.arc
...
RMAN> delete noprompt obsolete ;
RMAN retention policy will be applied to the command
RMAN retention policy is set to recovery window of 8 days
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=2182 instance=ngcrm1 devtype=DISK
Deleting the following obsolete backups and copies:
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
RMAN-06207: WARNING: 173 objects could not be deleted for DISK channel(s) due
RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status
RMAN-06210: List of Mismatched objects
RMAN-06211: ==========================
RMAN-06212: Object Type Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Backup Piece /crmbak/archivelog/RMAN_ARCH75680364012.arc
RMAN-06214: Backup Piece /crmbak/archivelog/RMAN_ARCH76680367633.arc
RMAN-06214: Backup Piece /crmbak/archivelog/RMAN_ARCH77680371224.arc
RMAN> crosscheck backup of archivelog like '%archivelog%';
RMAN> change backuppiece '/crmbak/archivelog/RMAN_ARCH75680364012.arc' crosscheck ;
RMAN> change backuppiece '/crmbak/archivelog/RMAN_ARCH75680364012.arc' crosscheck ;
RMAN> change backuppiece '/crmbak/archivelog/RMAN_ARCH75680364012.arc' crosscheck ;
....
在执行下列操作后都无效:
RMAN> crosscheck backup of archivelog like '%archivelog%';
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1663 instance=ngcrm1 devtype=DISK
RMAN> crosscheck backup completed between 'sysdate-1';
RMAN> crosscheck backup of archivelog all;
RMAN> change archivelog all crosscheck;
...
上述命令都无法将这部分mismatched的备份片标记为"EXPIRED"。无法清楚控制文件中的这部分信息
。
"mismatched status"实在没找到这个错误的好的解决办法。
只能逐个备份片交叉检查,或者按备份集进行检查。
RMAN> crosscheck backuppiece '/archivelog/RMAN_ARCH44680014814.arc';
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/archivelog/RMAN_ARCH44680014814.arc recid=90 stamp=680018411
Crosschecked 1 objects
或者
RMAN> change backupset 11 crosscheck ;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/archivelog/RMAN_ARCH17679971606.arc recid=11 stamp=679971607
Crosschecked 1 objects
然后可以进行删除。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10867315/viewspace-578135/
,如需转载,请注明出处,否则将追究法律责任。