Logo Oracle Deutschland   DBA Community  -  November 2013
Multitenant Self-Service Provisioning Anwendung
von Ulrike Schwinn, Oracle Deutschland B.V. & Co. KG

Oracle Multitenant ist eine neue Datenbank-Architektur, die seit Oracle Database Version 12c zur Verfügung steht. Konsolidierungen, schnelles und vereinfachtes Patchen, Provisionieren und Klonen einer Umgebung sind nur einige Vorteile, die sich aus diesem neuen Konzept ergeben können. Die Idee dahinter ist, dass sich mehrere Datenbanken nicht nur Ressourcen wie Hauptspeicher und Hintergrundprozesse teilen, sondern auch eine gemeinsame Verwaltung ("many as one") möglich ist. Man unterscheidet somit ab 12c die Multitenant Container Datenbank - auch kurz CDB - im Unterschied zu der Non Container Datenbank - auch Non CDB. Die einzelnen Datenbanken innerhalb eines Containers werden dabei als Pluggable Databases - auch PDB - bezeichnet. Die Container Datenbank kann eine oder mehrere Pluggable Databases enthalten.



Ein paar Worte noch zu den Begriffen im Schaubild: ROOT (auch CDB$ROOT) speichert die gemeinsamen Metadaten wie PL/SQL Packages (z.B. DBMS_UTILITY) usw. und die Informationen über spezielle User - die sogenannten Common User - die in jedem Container bekannt sind. SEED (auch PDB$SEED) ist eine Art Template, um schnell eine neue PDB zu erzeugen.

Wichtig zu wissen ist, dass Applikationen innerhalb der einzelnen Datenbanken unverändert weiter laufen können. Hat sich der Anwender über einen Service an einer PDB angemeldet, ist das Arbeiten unverändert wie in einer Non CDB möglich. Natürlich gibt es im Bereich der Administration auch einige Erweiterungen, um die neuen Funktionen wie Plug, Unplug oder Klonen einer PDB zu verwenden. Neue SQL Kommandos und Erweiterungen in den graphischen Werkzeugen wie Cloud Control oder SQL*Developer liefern die entsprechende Unterstützung.

Oracle Multitenant ist natürlich auch eine ideale Grundlage für "Database as a Service", weil damit eine neue Datenbank in kürzester Zeit erstellt werden kann. Daher steht seit September auf OTN der Download einer einfachen, intuitiven Weboberfläche für Multitenant Self-Service Provisioning zur Verfügung. Was steckt dahinter? Wie funktioniert die Installation? Welche Anwendungsmöglichkeiten gibt es? Diese Fragen und weitere Informationen sollen Thema der folgenden Abschnitte sein. Um eine bessere Übersicht zu geben, ist der Tipp in folgende Abschnitte unterteilt:

Was steckt dahinter?
Implementiert ist die Multitenant Anwendung unter Verwendung von Oracle Application Express (APEX) und dem APEX Listener. Die Basis stellt dabei eine leere Multitenant Datenbank dar. Auf OTN stehen die dazugehörige Software bzw. Links zur Software zur Verfügung. Es gibt zwar einen expliziten Hinweis auf die Plattform Linux x86-64, allerdings ist die Software auch ebenso auf Windows Umgebungen nutzbar. Ein umfassendes Readme beschreibt die Installationsschritte im Detail - ein kurzer Abriss folgt auch hier im Kapitel Installation. Die Software trägt zwar noch die Bezeichnung Beta, lässt sich allerdings ohne Probleme installieren und verwenden. Der Zeitaufwand für die Gesamtinstallation (Datenbank plus Anwendung) beträgt dabei ca. 2,5 Stunden. Nach der Installation sind noch einige einfache Konfigurationsschritte (z.B. Konfiguration des Email Accounts) durch den Container DBA (auch CDBA) nötig.

Ziel der Applikation ist es, einen einfachen Umgang mit den neuen Funktionen der Multitenant Architektur zu ermöglichen, um sich beispielsweise schnell in das neue Konzept und die Möglichkeiten der Multitenant Architektur einzuarbeiten. Alle Operationen wie Erzeugen einer PDB, Löschen einer PDB, Unplug und Plug werden dabei innerhalb eines einzigen Containers realisiert. Da es eine reine Self-Service Anwendung ist, werden andere Verwaltungsaufgaben wie Backup, Schemaverwaltung usw. nicht unterstützt.

Um einen ersten Eindruck von der Anwendung zu bekommen, zeigt folgender Screenshot die Home Page der Self-Service Anwendung.



Erste Schritte
Zuerst muss sich ein Anwender registrieren, um das Self-Service System nutzen zu können. Dies geschieht entweder manuell über den CDBA (siehe auch das Kapitel Konfiguration) oder über den "Request an Account" Link auf der Login Seite. Dabei gibt es zwei Arten von Anwendern, die mit unterschiedlichen Privilegien ausgestattet sind - den Container DBA und den Pluggable Database DBA (auch PDBA). CDBAs können zum Beispiel Ressource Profile einsehen, Quotas verwalten, Requests bewilligen usw. PDBAs hingegen können alle PDBs sehen und neue eigene PDBs erzeugen, klonen, einstecken bzw. ausstecken. Alle Aufgaben, die über die Webapplikation möglich sind, sind einfach und Wizard geführt durchführbar.

Möchte man z.B. als PDBA eine neue PDB anlegen, reichen ein Klick auf die Schaltfläche "New Database" und das Ausfüllen eines Templates, schon wird eine neue PDB erzeugt. Das Ergebnis wird nach dem Anlegen der PDB sofort auf der Home Page sichtbar. Eine Email enthält die Bestätigung und die Credentials für den PDBA. Zur besseren Übersichtlichkeit lässt sich auf der Home Page die Ergebnismenge der PDBs filtern (siehe Filter Ulrike auf dem Bild oben). Klickt man auf den PDB Namen, gelangt man zu der Administrationsseite der entsprechenden PDB. Hier wird direkt deutlich, welche Aktionen innerhalb des Containers möglich sind - nämlich Clone, Close/Reopen, Unplug und Drop.



Nutzt man den Menüpunkt Connection (siehe Bild oben) erhält man sogar die Informationen zum Einloggen in die PDB. Einfach das Passwort aus der Email einsetzen und schon ist die Connection Information vollständig.
[oracle@sccloud040 ~]$ sqlplus pdb_admin/gezaro4n@sccloud040/pdb1

SQL*Plus: Release 12.1.0.1.0 Production on Fri Oct 18 10:26:47 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Als Eigentümer einer PDB ist natürlich das Löschen der PDB (Schaltfläche Drop) möglich - mit und ohne Datendateien sind dabei die Optionen. Schließen, Öffnen und Read Only oder Read Write Setzen sind über die Schaltfläche Close/Reopen möglich. Der Read Only Mode ist dabei die Voraussetzung zum Klonen einer PDB.

PDBs können auf zwei Arten geklont werden - über die Schaltfläche Clone oder über die Home Page und die Schaltfläche New Database (allerdings nur für PDBS mit der Eigenschaft Cloneable). Unterstützt das Filesystem Snapshot Copys kann mit der Option Snapshot Clone eine Kopie sofort ohne Verzögerung erstellt werden.

Möchte man ein Unplug einer PDB durchführen, muss die PDB zuerst geschlossen werden. Danach ist ein Unplug mit einem Klick auf die entsprechende Schaltfläche möglich. Auf der Bestätigungsseite erscheint der Unplug Pfad für die generierte XML Metadaten Datei (siehe auch Kapitel Konfiguration). Danach besitzt diese PDB die Eigenschaft Unplugged.

Installation
Wie oben schon erwähnt, ist die Installation sehr genau im Readme beschrieben. Folgt man den einzelnen Schritten, ist die Installation in jedem Fall erfolgreich. Insgesamt sind dabei folgende 3 Downloads erforderlich: Hinweis: Nutzt man eine Windows Umgebung, sollte man vor der Installation sicher stellen, dass ein "connect / as sysdba" möglich ist.

Im folgenden Abschnitt beschreiben wir kurz das Vorgehen, um einen Überblick über die notwendigen Schritte zu geben.
  1. Installation der Container Software: Zwei Dinge sind unbedingt zu beachten: Die Container Datenbank sollte unbedingt leer sein. Tipp: Im DBCA gibt es im Bereich "Creation Mode" die Menüoption "Advanced Mode", die den Auswahlpunkt "Create an Empty Container Database" anbietet.
    Zusätzlich sollte beim Anlegen der Datenbank der Zeichensatz AL32UTF8 verwendet werden.
  2. Patchen der APEX Installation: Mit Oracle 12c ist APEX in der Version 4.2.0 installiert. Erforderlich ist allerdings die Version 4.2.3, die mit dem APEX Patch 17347169 eingespielt wird. Der Patch besteht aus der Ausführung eines SQL Skripts und einigen SQL Kommandos, die manuell einzugeben sind. Das Readme (siehe oben) gibt die genauen Schritte (3 bis 6) zur Installation und Konfiguration vor.
  3. Installation und Konfiguration des Application Express Listeners: Da die Anwendung mit RESTFul Webservices arbeitet, ist der Java basierende APEX Listener erforderlich. Die einfachste Variante, diesen zu betreiben besteht im "Standalone Modus", der keinen eigenen Java Container erfordert. Entpacken Sie die Zip Datei und folgen Sie einfach den Schritten 7 bis 9 im Readme.
  4. Installation der Multitenant Anwendung: Auch hier gilt wie in den vorangegangenen Schritten nach dem Auspacken der Zip Datei einfach dem Readme folgen.
Danach ist die Installation abgeschlossen! Die Self-Service Anwendung kann nun über folgende URL genutzt werden.
http://hostname:8080/apex/apex/f?p=PDBSS
Die Login Page sieht dann folgendermassen aus:



Der User ADMIN mit zugehörigem Passwort wurde während der Installation angelegt und wird nun zum ersten Einloggen verwendet. Es ist ein Container DBA und kann beispielsweise die Self-Service Systeme administrieren und Accounts genehmigen.

Konfiguration
Die Konfiguration und das weitere Monitoring wird über den Menüpunkt "Administration" durchgeführt. Wählen Sie für die Konfiguration die Schaltfläche "Self-Service System Configuration". Hier wird beispielsweise der Dateipfad für das Unplug festgelegt und die Emaileinstellungen für die Self-Service Requests eingerichtet. Darüberhinaus können weitere Einstellungen wie z.B. die Datenbankgrößen, die beim Erzeugen einer PDB zur Auswahl stehen, bzw. Ressource Pläne für CPU und die Parallelität durchgeführt werden.

Weitere Self-Service User (PDBAs oder CDBAs) einrichten oder zugehörige Quotas konfigurieren sind weitere Optionen auf der Administrationsseite. Folgendes Bild zeigt die Administrationsseite.



Fazit

Die Multitenant Self-Service Anwendung ist eine einfache und intuitive Webanwendung. Die Installation ist dabei wenig aufwändig und schnell durchgeführt. Der Ressourcenverbrauch ist gering, da nur APEX und der APEX Listener verwendet werden. Da die Anwendung sich allerdings erst im Beta Status befindet, ist die Nutzung im Moment nur für Test- und Entwicklungsumgebungen zu empfehlen. Als eine weitere Einschränkung kann die Begrenzung auf einen Container gesehen werden - alle Operationen sind damit auf einen einzigen Container begrenzt. Für Umgebungen mit mehreren CDBs ist in diesem Zusammenhang noch der Hinweis sinnvoll, dass in Kürze im Enterprise Manager 12c Cloud Control ebenfalls eine "PDB-as-Service"-Funktionalität zur Verfügung stehen wird.

Kurz zusammengefasst: Möchte man sich schnell mit dem neuen Konzept vertraut machen, stellt diese Self-Service Anwendung sicherlich eine gute Möglichkeit dar. Also einfach ausprobieren!

Zurück zur Community-Seite