使用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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/40239/viewspace-706739/