Unusual Use of the RMAN uncatalog Command
A fresh year is the perfect time to learn something new. Recently, I have come across warning messages in the RMAN level 0 backup log file and this post describes how I dealt with them.
The file contents went as follows:
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 +RECOC1/prod/snapcf_prod.f specification does not match any backup in the repository
We took disk-level backups without a recovery catalog schema and the associated command failed with this error: “delete noprompt expired backup;”. So, I executed the commands like “crosscheck backup;” and “crosscheck copy;” but found no expired records. Finally, the control file copy pieces showed validation failed messages as follows:
RMAN> crosscheck copy of controlfile; released channel: ORA_DISK_1 released channel: ORA_DISK_2 released channel: ORA_DISK_3 released channel: ORA_DISK_4 released channel: ORA_DISK_5 released channel: ORA_DISK_6 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=5663 instance=PROD2 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=6290 instance=PROD2 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=6601 instance=PROD2 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=6915 instance=PROD2 device type=DISK allocated channel: ORA_DISK_5 channel ORA_DISK_5: SID=325 instance=PROD2 device type=DISK allocated channel: ORA_DISK_6 channel ORA_DISK_6: SID=631 instance=PROD2 device type=DISK validation failed for control file copy control file copy file name=/backups/PROD/snapcf_prod.f RECID=60 STAMP=1025510159 Crosschecked 1 objects validation failed for control file copy control file copy file name=+RECOC1/prod/snapcf_prod.f RECID=65 STAMP=1055956089 Crosschecked 1 objects
So, I started the delete command with the “force” option, which was executed successfully. But I still saw those pieces in the list command as follows:
RMAN> delete force expired copy of controlfile; released channel: ORA_DISK_1 released channel: ORA_DISK_2 released channel: ORA_DISK_3 released channel: ORA_DISK_4 released channel: ORA_DISK_5 released channel: ORA_DISK_6 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=5663 instance=PROD2 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=6290 instance=PROD2 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=6601 instance=PROD2 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=6915 instance=PROD2 device type=DISK allocated channel: ORA_DISK_5 channel ORA_DISK_5: SID=325 instance=PROD2 device type=DISK allocated channel: ORA_DISK_6 channel ORA_DISK_6: SID=631 instance=PROD2 device type=DISK List of Control File Copies =========================== Key S Completion Time Ckp SCN Ckp Time ------- - --------------- ---------- --------------- 65 X 08-NOV-20 281674038070 08-NOV-20 Name: +RECOC1/prod/snapcf_prod.f Tag: TAG20201108T170807 60 X 28-NOV-19 253807915757 28-NOV-19 Name: /backups/PROD/snapcf_prod.f Tag: TAG20191128T075552 Do you really want to delete the above objects (enter YES or NO)? YES deleted control file copy control file copy file name=/backups/PROD/snapcf_prod.f RECID=60 STAMP=1025510159 Deleted 1 EXPIRED objects deleted control file copy control file copy file name=+RECOC1/prod/snapcf_prod.f RECID=65 STAMP=1055956089 Deleted 1 EXPIRED objects RMAN> list copy of controlfile; List of Control File Copies =========================== Key S Completion Time Ckp SCN Ckp Time ------- - --------------- ---------- --------------- 65 X 08-NOV-20 281674038070 08-NOV-20 Name: +RECOC1/prod/snapcf_prod.f Tag: TAG20201108T170807 60 X 28-NOV-19 253807915757 28-NOV-19 Name: /backups/PROD/snapcf_prod.f Tag: TAG20191128T075552
The individual delete commands were failing with “RMAN-06159: error while looking up backup set,” which is expected as these backup pieces are no longer available. To my surprise, the ‘change..uncatalog’ option helped here:
RMAN> delete backupset 65; using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 using channel ORA_DISK_5 using channel ORA_DISK_6 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of delete command at 01/02/2022 21:10:34 RMAN-20215: backup set not found RMAN-06159: error while looking up backup set RMAN> delete backupset 60; using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 using channel ORA_DISK_5 using channel ORA_DISK_6 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of delete command at 01/02/2022 21:10:55 RMAN-20215: backup set not found RMAN-06159: error while looking up backup set RMAN> change controlfilecopy '/backups/PROD/snapcf_prod.f' uncatalog; uncataloged control file copy control file copy file name=/backups/PROD/snapcf_prod.f RECID=60 STAMP=1025510159 Uncataloged 1 objects RMAN> change controlfilecopy tag 'TAG20201108T170807' uncatalog; uncataloged control file copy control file copy file name=+RECOC1/prod/snapcf_prod.f RECID=65 STAMP=1055956089 Uncataloged 1 objects RMAN> crosscheck copy of controlfile; released channel: ORA_DISK_1 released channel: ORA_DISK_2 released channel: ORA_DISK_3 released channel: ORA_DISK_4 released channel: ORA_DISK_5 released channel: ORA_DISK_6 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=638 instance=PROD2 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=6290 instance=PROD2 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=4726 instance=PROD2 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=6286 instance=PROD2 device type=DISK allocated channel: ORA_DISK_5 channel ORA_DISK_5: SID=6606 instance=PROD2 device type=DISK allocated channel: ORA_DISK_6 channel ORA_DISK_6: SID=6915 instance=PROD2 device type=DISK specification does not match any control file copy in the repository RMAN> list copy of controlfile; specification does not match any control file copy in the repository
I usually use this ‘change..uncatalog’ command while cloning/refreshing a database. So, this new usage clause was very surprising. I discovered more about this command from this URL:
https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/maintaining-rman-backups.html
I hope you found this post helpful.
Feel free to drop any questions in the comments and don’t forget to sign up for the next post.
Share this
You May Also Like
These Related Stories
No Comments Yet
Let us know what you think