使用RMAN CROSSCHECK 更新檔案狀態

kewin發表於2011-09-06
使用RMAN CROSSCHECK  更新檔案狀態
Kevin Zou
2011-9-6
在一個系統在刪除舊的ARCHIVELOG時,看到有報錯:
RMAN-06207: WARNING: 868 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    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_304_717698025_18_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_309_717698058_19_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_314_717698092_20_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_319_717698129_21_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_324_717698162_22_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_254_717698854_24_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_259_717698881_25_1
RMAN-06214: Backup Piece    D:\ORACLE\PRODUCT\11.1.0\DATABASE\PPMP_ARC_269_717698912_26_1

想起來這是由於之前手工刪除了部分歸檔日誌,但是沒有更新controlfile,所以controlfile認為這些歸檔日誌還是存在的,實際上這些日誌都已經被刪除了。
要解決這個問題要執行CROSSCHECK ARCHIVELOG ALL+ delete expired archivelog all。
CROSSCHECK ARCHIVELOG ALL 會在在DISK 或者TAPE上去匹配ARCHIVELOG,如果找不到,就把對應的archivelog標識為EXPIRED。
DELETE EXPIRED ARCHIVELOG ALL 會把上一步標識為EXPIRED的日誌刪除。如果不加上noprompt,這個命令會要求確認刪除EXPIRED 的日誌,如果預設為刪除,那可以加上NOPROMPT 引數。
下面是記錄的部分摘要:
。。
archived log file name=E:\ORACLE\PPMP\ARCH11\ARC17203_0712701039.001 RECID=17652
 STAMP=756391887
deleted archived log
archived log file name=E:\ORACLE\PPMP\ARCH11\ARC17204_0712701039.001 RECID=17653
 STAMP=756391887
Deleted 868 EXPIRED objects


RMAN> list expired archivelog
2> all;

specification does not match any archived log in the recovery catalog

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

相關文章