Supprimer un backupset d'un catalogue RMAN sans CROSSCHECK

Sans accès au media manager depuis votre base de données Oracle, impossible d’établir un canal de maintenance et donc de lancer la commande CROSSCHECK. Dans la cas où cette perte est définitive, pour supprimer les références à vos fichiers de sauvegarde de votre catalogue RMAN ou de votre fichier de contrôle, vous pouvez utiliser CHANGE ... UNCATALOG pour supprimer les références à ces fichiers.

Seulement voilà :

RMAN> list backup tag=TAG20120516T101354;

List of Backup Sets
===================

BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
7 6.75M SBT_TAPE 00:00:56 16-MAY-12
BP Key: 7 Status: UNAVAILABLE Compressed: YES Tag: TAG20120516T101354
Handle: 08nb4832_1_1 Media: oracle RMAN0000001

List of Archived Logs in backup set 7
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 51 6997886 16-MAY-12 7009301 16-MAY-12

RMAN> change backup tag=TAG20120516T101354 uncatalog;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of uncatalog command at 11-JUN-12
RMAN-06122: CHANGE .. UNCATALOG not supported for BACKUPSET

Et effectivement, Oracle ne sait pas décataloguer un jeu de sauvegarde ; en revanche, vous pouvez facilement supprimer les fichiers de sauvegarde :

RMAN> change backuppiece tag=TAG20120516T101354 uncatalog;

uncataloged backup piece
backup piece handle=08nb4832_1_1 RECID=7 STAMP=783425634
Uncataloged 1 objects

RMAN> list backup tag=TAG20120516T101354;
specification does not match any backup in the repository

Une solution bien meilleure que de recréer les fichiers de contrôle, sans doute…