Skip to Main Content

Breadcrumb

Löschen von SBT_TAPE Backups

Löschen alter SBT_TAPE Backups, wenn diese nicht mehr verfügbar sind

Vor allem nach der Umstellung von Tape auf Disk basiertes Backup kommt es immer wieder vor, dass übersehen wird die SBT_TAPE Sicherungen aus dem RMAN Katalog (Controlfile oder Repository) zu entfernen. Ist dann der Media Management Layer (MML Software nicht mehr installiert) nicht mehr verfügbar, lassen sich diese Backups nicht mehr mit der ehemaligen SBT_TAPE Device Konfiguration löschen.

Ein Auszug aus einer Konfiguration (abhängig von der verwendeten Tape Lösung):

RMAN> show all;

RMAN configuration parameters for database with db_unique_name JAZZEY1 are:
..
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
...
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'ENV=(NSR_SERVER=nsrbkp.example.com,NSR_CLIENT=srvdb12cr2.example.com,NSR_DATA_VOLUME_POOL=ORA,NSR_SAVESET_BROWSE=2 WEEKS,NSR_SAVESET_RETENTION=4 WEEKS)';
...

Ein Beispiel alter SBT_TAPE Sicherungen:

RMAN> list backup summary;

List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
14801   B  F  A SBT_TAPE    10-DEC-17       1       1       NO         DB12cR2-DBF-2017.12.10-03:00
14802   B  A  A SBT_TAPE    10-DEC-17       1       1       NO         DB12cR2-LOG-2017.12.10-03:00
14803   B  A  A SBT_TAPE    10-DEC-17       1       1       NO         DB12cR2-LOG-2017.12.10-03:00
14804   B  A  A SBT_TAPE    10-DEC-17       1       1       NO         DB12cR2-LOG-2017.12.10-03:00
14979   B  F  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-DBF-2018.01.09-03:00
14980   B  F  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-DBF-2018.01.09-03:00
14981   B  A  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.09-03:00
14982   B  A  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.09-03:00
14983   B  A  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.09-03:00
14984   B  A  A SBT_TAPE    09-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.09-03:00
14985   B  F  A SBT_TAPE    10-JAN-18       1       1       NO         DB12cR2-DBF-2018.01.10-03:00
14986   B  F  A SBT_TAPE    10-JAN-18       1       1       NO         DB12cR2-DBF-2018.01.10-03:00
14987   B  A  A SBT_TAPE    10-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.10-03:00
14988   B  A  A SBT_TAPE    10-JAN-18       1       1       NO         DB12cR2-LOG-2018.01.10-03:00
...

Versucht man diese Sicherungen zu bearbeiten (crosscheck, löschen, etc.) erhält man die Meldung:

RMAN> crosscheck backup completed before '10-FEB-18';

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of crosscheck command at 09/06/2018 10:03:13
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
Additional information: 2

Was kann man tun, um diese alten Sicherungen zu entfernen?

Abhilfe schafft hier die Oracle Note 342284.1.
Oracle stellt dafür eine Dummy API zur Verfügung, die den Media Management Layer emuliert. Das erlaubt mit einem Maintenance Channel die nicht mehr verfügbaren Sicherungen aus dem Katalog zu löschen:

RMAN> allocate channel for maintenance device type SBT_TAPE parms 'SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/tmp)';

Jetzt ein Crosscheck absetzen um die nicht mehr erreichbaren Backups in den Status OBSOLETE zu bekommen:

RMAN> crosscheck backup;

Möchte man nur Backups vor einem bestimmten Zeitpunkt löschen, lässt sich das Crosscheck auch entsprechend einschränken:

RMAN> crosscheck backup completed before '10-FEB-18';

Nun kann man die Backups aus dem Katalog entfernen:

RMAN> delete expired backup;

Ein Blick in die RMAN Dokumentation für weitere nützliche Optionen lohnt sich!