Etwas Großes kommt… (Oracle 12c)

Mehr als fünf Jahre sind seit der Einführung der Datenbank 11g vergangen. Soviel Zeit hat sich Oracle zwischen zwei Hauptversionen noch nie gelassen. Langsam ist es an der Zeit für das nächste große Datenbankrelease. Auf der diesjährigen Oracle Openworld Conference (OOW) im Oktober in San Francisco war es dann soweit. Es dürfte keinen mehr überraschen, dass es Oracle 12c heißen wird.

Larry Ellison, der Gründer von Oracle, hat im Mai in einem Interview von einem Erscheinungstermin im Dezember diesen oder Januar nächsten Jahres gesprochen. Auf der OOW wurde der Korridor mit „im Jahr 2013“ etwas weiter gefasst.

In etlichen Sessions wurden neue Features und Änderungen der nächsten Version vorgestellt. Immer allerdings unter dem Vorbehalt, dass die neuen vorgestellten Features es nicht zwingend ins neue Release schaffen müssen und ohne, die gezeigten Folien zu veröffentlichen.

Durch welche Features wir tatsächlich in der neuen Version beglückt werden, werden wir also erst am Tag der Veröffentlichung erfahren. Aber natürlich lohnt es sich, einen vorsichtigen Blick auf das zu werfen, was da nächstes Jahr auf uns zukommt.

Mandantenfähigkeit der Datenbank / Pluggable Databases

Das Hauptfeature der neuen Datenbank ist die eingebaute Mandantenfähigkeit, die Larry Ellison während seiner Keynote ausführlich vorgestellt hat.

Das Data Dictionary wurde aufgeräumt und streng in Oracle- und anwendungsspezifische Teile getrennt. Der reine Oracle-Teil heißt ab sofort Container-DB (CDB). Die Trennung ermöglicht es, den Teil mit den Anwendungsdaten aus einer Container-DB aus – und in eine andere wieder einzustöpseln. Deswegen heißen die Anwendungsdatenbanken Pluggable-DB oder kurz PDB.

Richtig spannend ist jetzt, dass in jede Container-DB beliebig viele Anwendungsdatenbanken (PDBs) eingestöpselt werden können. Die PDBs teilen sich das Data Dictionary, den Oracle-Prozess-Satz sowie die Redo Logs und Undo-Tablespaces der CDB.
Während sich das Konstrukt aus CDB und PDBs für den Administrator als eine große Datenbank darstellt, sind die einzelnen PDBs voneinander logisch völlig getrennt und bekommen nichts von ihren Nachbardatenbanken mit.

Dies ist auf den ersten Blick etwas verwirrend, hat aber eine Reihe von Vorteilen:

  • Skalierbarkeit:
    Dadurch, dass sich die einzelnen PDBs die Prozesse und das Memory teilen, lassen sich viel mehr Datenbanken pro physikalischen Server betreiben.
  • Geringe Downtimes bei Upgrades:
    Natürlich lassen sich auch mehrere CDBs auf einem Server betreiben, die auch durchaus unterschiedliche Versionen haben können. Alle Oracle-versionsspezifischen Teile der Datenbank stecken in der CDB. Ein Upgrade von z.B. 12.1.0.2 auf 12.2.1.3 funktioniert durch ausstöpseln der PDB aus der 12.1.0.2 CDB und wieder einstöpseln in die CDB mit der höheren Releaseversion. Das Aus- und wieder Einstöpseln der Datenbanken ging in allen Demonstrationen, die ich gesehen habe, im einstelligen Sekundenbereich von statten, was in dieser schönen neuen Welt ab sofort die Downtime für Upgrades wäre.
  • Vereinfachung der Administration:
    Anstelle von vielen Einzeldatenbanken muss nur noch eine Datenbank gesichert und administriert werden. Das betrifft insbesondere das Backup.

Die neue Technik muss sich natürlich erst in der Praxis beweisen. Zwischen unseren Kollegen laufen auch schon die ersten Wetten, wie lange es dauert, bis es der ersten PDB gelingt, doch die Daten ihrer Nachbar-PDBs zu lesen oder gar zu manipulieren…

Während technische Fragen zu dieser neuen Technik in aller Tiefe beantwortet wurden, schwiegen sich die Verantwortlichen zur dazugehörigen Lizenzstrategie aus.

Viele, viele bunte Features…

Die Pluggable Database ist natürlich nicht die einzige Neuerung in 12c. Insgesamt war von mehr als fünfhundert Erweiterungen und Verbesserungen die Rede. Die alle in diesem Newsletter vorzustellen, würde dessen Rahmen doch etwas sprengen. Trotzdem möchte ich noch einige meiner Lieblingsfeatures hier vorstellen:

  • Die SQL zieht mit PL/SQL gleich. Varchar2-Spalten können endlich auch 32000 Zeichen aufnehmen. Wenn die Werte allerdings zu groß werden, werden sie – ähnlich wie LOBs – außerhalb der Zeilen gespeichert
  • Die Integration von PL/SQL ins SQL wird erheblich beschleunigt
  • In „with-Klauseln“ am Anfang eines SQL-Statements können Funktionen definiert werden (Pseudocode):
    with function x (parameter)
    begin
    return x;
    end;
    select x(p) from t
  • Mit utl_callstack lassen sich endlich sehr einfach die aufrufenden Funktionen bestimmen
  • Rollen können an PL/SQL-Packages vergeben werden
  • Es kann festgelegt werden, welche anderen PL/SQL-Programme Funktionen eines Packages aufrufen dürfen
  • Das Fenster der zurückgelieferten Zeilen einer Abfrage kann festgelegt werden (Gib mir Zeile 750-799)
  • SQL Statements können jetzt, während sie ausgeführt werden, den zugrundeliegenden Ausführungsplan ändern

Mein persönliches Highlight ist allerdings die „Match Recognization“, eine Erweiterung der SQL-Abfragen um Mustererkennung.

Robert Marz, Senior Professional, its-people Hochtaunus

Das könnte Sie auch interessieren

Bleiben Sie informiert:

its-people hilft Ihnen...

Weitere Blogthemen: