在实现了dataguard的环境下,同时RMAN配置为nocatalog时,在primary上面创建standby controlefile会记录在controlfile中; 在RMAN delete obsolete时,该文件并不能被删除,而是显示:
RMAN-06207: WARNING: 1 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: Datafile Copy /u01/oradata/standby.ctl
此时需要手工删除该文件,步骤如下:
首先在OS中删除该文件,然后更新RMAN库,也就是controlefile
RMAN> list copy of controlfile;
List of Control File Copies
Key S Completion Time Ckp SCN Ckp Time Name
------- - --------------- ---------- --------------- ----
1 A 25-NOV-09 258805 25-NOV-09 /u01/oradata/standby.ctl
RMAN> crosscheck copy of controlfile;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=120 devtype=DISK
validation failed for control file copy
control file copy filename=/u01/oradata/standby.ctl recid=1 stamp=703855797
Crosschecked 1 objects
RMAN> delete copy of controlfile ;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=120 devtype=DISK
List of Control File Copies
Key S Completion Time Ckp SCN Ckp Time Name
------- - --------------- ---------- --------------- ----
1 X 25-NOV-09 258805 25-NOV-09 /u01/oradata/standby.ctl
Do you really want to delete the above objects (enter YES or NO)? YES
deleted control file copy
control file copy filename=/u01/oradata/standby.ctl recid=1 stamp=703855797
Deleted 1 objects
RMAN> list copy of controlfile;
oracle 10g ,redhat as 4.5