Bei einer Umgebung mit vielen Datenbanken hat es nach wie vor Vorteile, die RMAN-Backup-Informationen in einem Katalog-Schema innerhalb einer weiteren Datenbank zu speichern. Der RMAN-Katalog erfordert die höchste Version aller dort gesicherten Datenbanken – das bedeutet bei Upgrade oder Anlage einer neuen Datenbank in einer höheren Version dann jeweils auch ein Katalog-Upgrade. So weit, so bekannt.
Eine böse Überraschung gab es allerdings gestern beim Katalog-Upgrade eines Kunden, nachdem eine Datenbank auf 12.1.0.2 aktualisiert worden war: Der Befehl
RMAN> upgrade catalog;
brachte zunächst eine Fehlermeldung über fehlende Privilegien ein. Hierzu war schnell ein MOS-Artikel gefunden (Doc ID 1915561.1: Upgrade Recovery Catalog fails with RMAN-07539: insufficient privileges): Das Skript $ORACLE_HOME/rdbms/admin/dbmsrmansys.sql sorgt für die ab 12.1.0.2 benötigten Zusatz-Privilegien.
Dies ist jedoch nur die halbe Wahrheit… der nun folgende Fehler beim nächsten Versuch lautete:
RMAN> upgrade catalog;
error creating create_deleted_object_seq
RMAN-00571: ================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS
RMAN-00571: ================================================
RMAN-06004: ORACLE error from recovery catalog database:
ORA-00439: feature not enabled: Partitioning
Partitioning? Aber die Katalog-DB ist doch (und war auch immer schon) eine SE1??
Tja, damit ist jetzt Schluss: Ab 12.1.0.2 ist eine EE mit Partitioning tatsächlich Voraussetzung für eine Recovery-Katalog-Datenbank. Die Notwendigkeit, diese Tatsache irgendwo (z.B. im Upgrade Guide oder auch im Backup / Recovery Guide) zu dokumentieren, sah man bei Oracle wohl nicht. Im Upgrade Guide heißt es wie gehabt lapidar:
If you use a version of the recovery catalog schema that is older than that required by the RMAN client, then you must upgrade it.
Blöd nur, dass der vorhandene Katalog jetzt bereits in einem Zustand ist, der es den älteren registrierten Datenbanken nun leider auch nicht mehr erlaubt, sich gegen das Katalog-Schema zu synchronisieren. Heißt also: Neues Katalog-Schema erstellen und alle Datenbanken neu registrieren – und für die 12.1.0.2-er Datenbank nun ASAP eine neue Repository-Datenbank mit EE und Partitioning erstellen…
Immerhin wird für diese neue Katalog-Datenbank keine Lizenz fällig, wenn dort ausschließlich der Recovery-Katalog und / oder sonstige Oracle-Repositories wie z.B. das für Cloud Control usw. gespeichert werden. in der Licensing Information heißt es zu den sog. Infrastructure Repository Databases:
A separate single instance Oracle Database can be installed and used as an infrastructure repository for RMAN, Oracle Enterprise Manager Cloud Control, Automatic Workload Repository (AWR) Warehouse, Global Data Services Catalog, and Grid Infrastructure Management Repository without additional license requirements, provided that all the targets are correctly licensed. It may not be used or deployed for other uses.
… Enterprise Edition must be used for the infrastructure
repository database(s).
Auch im Backup / Recovery Guide ist zwar die Rede davon, sog. Virtual Private Catalogs zu erstellen, für die dann die EE vorgeschrieben ist. Leider fehlt jedoch auch hier der Hinweis darauf, dass auch Recovery-Kataloge, die NICHT das Private Virtual Catalog-Feature nutzen, dennoch eine EE-Datenbank als Repository benötigen.
Zusammenfassung:
für einen Recovery-Katalog mit Datenbanken ab 12.1.0.2 wird folgendes benötigt:
- Eine Repository-Datenbank in der Enterprise Edition
- Die Partitioning Option in dieser Datenbank
- KEINE Lizenz für beides, vorausgesetzt die Datebank wird ausschließlich als Infrastructure-Repository-Database genutzt
In diesem Sinne: schönes Wochenende 🙂