„Oracle Multitenant“: Neue Option, neue Architektur, neue Nomenklatur

  • Erstellt von Manuel Hoßfeld
  • Datenbank

Seit Ende Juni ist Oracle Database 12c verfügbar. Die wohl umfangreichste und vielversprechendste Neuerung im neuen Release nennt sich „Oracle Multitenant“. Diese führt optional eine neue Datenbankarchitektur ein, welche es erlaubt, mehrere sogenannte „Pluggable Databases“ in einer mandantenfähigen „Container Datenbank“ zu betreiben. Was diese Begriffe bedeuten, erklärt DOAG Online.

Seit Ende Juni ist Oracle Database 12c verfügbar. Die wohl umfangreichste und vielversprechendste Neuerung im neuen Release nennt sich „Oracle Multitenant“. Diese führt optional eine neue Datenbankarchitektur ein, welche es erlaubt, mehrere sogenannte „Pluggable Databases“ in einer mandantenfähigen „Container Datenbank“ zu betreiben. Was diese Begriffe bedeuten, erklärt DOAG Online.

Bis zur Version 11 bestand ein Oracle-Datenbanksystem grundsätzlich aus zwei Komponenten: der Datenbank selbst in Form von Dateien und einer Instanz (oder mehrerer Instanzen im Fall von RAC) in Form von Betriebssystemprozessen und Hauptspeicher. Werden mehrere Datenbanksysteme auf einem Server betrieben, sind entsprechend viele Instanzen aktiv.

Unter 12c kann die Datenbank weiterhin unter dieser Architektur betrieben werden. 

Neue Architektur und Nomenklatur

Wer aber neue Architektur nutzt, hat es mit einem ganz anderen Konzept zu tun. So gibt es dabei nun folgende Bestandteile:

  • Pluggable Database (PDB ): Die PDB ist eine für Anwendungen genutzte Datenbank, die unter Verwendung der neuen Architektur betrieben wird. Sie enthält alle Anwendungsdaten samt Data Dictionary, Datenbankbenutzer usw.
  • Container Database (CDB ): Es handelt sich um den Container, in den die PDBs eingeklinkt werden. Alle PDBs innerhalb einer CDB benutzen die gleiche Datenbankversion. Diese wird durch die CDB vorgegeben.
  • Non-CDB: Die Non-CDB ist eine Oracle-Datenbank, die nach herkömmlicher Architektur unter Oracle 12c betrieben wird.
  • Seed-DB: Unter dem Begriff Sees-DB versteht man ein Datenbanktemplate, mit dem sehr schnell eine neue PDB erzeugt werden kann. Jede CDB enthält genau eine Seed-DB mit dem Namen PDB$SEED.


Unterschied zwischen PDB und Non-CDB

Eine PDB unterscheidet sich von einer Non-CDB dadurch, dass sie keine eigene(n) Instanz (Memory und Hintergrundprozesse), Kontrolldatei, Redolog-Dateien und Undo Tablespaces besitzt. Diese Komponenten werden zentral von der CDB bereitgestellt, in der die PDB betrieben wird. 

Data Dictionary wird aufgeteilt

Auch beim Inhalt der Datenbanken gibt es Unterschiede zum klassischen Konzept. Unter Verwendung der neuen Architektur wird das Data Dictionary aufgeteilt in:

  • einen statischen Bereich,
  • einen anwendungsbezogenen Bereich.

Der statische Bereich ist Bestandteil der CDB und beinhaltet festbleibende Informationen, die für den Betrieb der eingesetzten Datenbank-Software benötigt werden. Diese werden während der Lebenszeit der Datenbank mit der jeweils gegebenen Version nicht mehr verändert. Dieser Bereich wird auch „Root“ oder „Root-container“ genannt. Alle PDBs einer CDB teilen sich diesen statischen Bereich.

Der anwendungsbezogene Bereich ist Bestandteil der PDB. Die Inhalte können in diesem Bereich Veränderungen unterliegen. 

Der statische Bereich wird über eine Verlinkung in den anwendungsbezogenen Bereich einbezogen. Aus der Sicht einer PDB hat diese also ein komplettes Data Dictionary, auch wenn die nicht veränderlichen Teile aus der CDB stammen.

Abbildung 1: Komponenten und Begriffe von Oracle Multitenant

Abbildung 1: Komponenten und Begriffe von Oracle Multitenant

Vorteile der neuen Multitenant-Architektur

Die neue Architektur bietet viele interessante Vorteile und Anwendungsmöglichkeiten.

  • Konsolidierung und Einsparung von Ressourcen: Prozesse, RAM und große Teile des Data Dictionaries sind nur einmal vorhanden. Dadurch können im Vergleich zur klassischen Architektur wesentlich mehr Datenbanken auf einem System betrieben werden.
  • Mobilität: „Unplug“ / „Plug“: Die kompletten PDBs lassen sich auch schnell und einfach von einer CDB in die andere aus- und wieder einstöpseln.
  • Cloudfähigkeit: Die neue Architektur ist aufgrund der schnellen Bereitstellung neuer PDBs die ideale Basis für DBaaS (Database-as-a-Service). Eine neue PDB lässt sich schnell aus der Seed-DB erzeugen. Auch das Klonen einer bestehenden PDB ist denkbar einfach.
  • Patchen/Migration: Patching und Migration erfolgen auf der CDB-Ebene. Ist eine CDB einmal gepatcht, so sind es automatisch auch alle darin enthaltenen PDBs
  • Effizientere Möglichkeit für Desaster Recovery sowie Backup & Recovery: Sowohl Data Guard als auch Backups werden zentral auf Ebene einer CDB eingerichtet. (Ein Restore eines Backups ist dennoch auch für einzelne PDBs möglich.)