Neben den bereits seit Jahren verfügbaren SaaS (Software-as-a-Service) Angeboten gibt es inzwischen auch Public Cloud Plattformdienste für Datenbanken und Middleware von Oracle. Ohne Investitionen in Lizenzen oder gar eigene Infrastruktur kann eine "Datenbank auf Knopfdruck" als fertiger Dienst bezogen werden. Der Markenname für die Public Cloud Angebote lautet übrigens einfach nur "Oracle Cloud". Dieser Artikel dient als Einführung in die Einrichtung und Nutzung von Datenbanken in der Oracle Cloud.
Ausprägungen und Nomenklatur der Datenbankdienste in der Oracle Cloud
Zunächst ist es wichtig zu verstehen, dass verschiedene Ausprägungen von Datenbankdiensten in der Oracle Cloud zur Verfügung stehen:
- Database Schema Service
- Database as a Service
- Exadata Service
Der "Database Schema Service" steht derzeit in drei festen Größenordnungen zur Verfügung (5GB, 20GB und 50GB Storage.) Dieser bietet den Nutzern, wie der Name bereits suggeriert, lediglich ein Schema einer Oracle Datenbank, in dem Entwickler oder Power User mittels APEX kleinere bis mittlere Anwendungen für ihr Unternehmen bauen und betreiben können. Abgesehen von den zusätzlich auch über eine RESTful API möglichen Datenzugriffen verfügt dieser Dienst jedoch über keinerlei direkten Einfluss auf die Datenbank selbst oder gar das zugrundeliegende Betriebssystem.
Im Gegensatz dazu gibt es auch einen Database Cloud Service, der als "Database as a Service" im wörtlichen Sinn eine komplette Datenbank in der Cloud darstellt - d.h. vollständig inklusive allen Konfigurations- und Zugriffsmöglichkeiten. Technisch gesehen handelt es sich hierbei um eine VM auf Basis von Oracle Linux, in der eine Oracle Datenbank installiert ist. Neben den bekannten Editionen wie z.B. der Enterprise Edition stehen auch Bundles zur Verfügung, welche die Nutzung einiger oder aller Datenbankoptionen ermöglicht.
Der "Exadata Service", manchmal auch "Exadata Cloud Service" genannt, bietet letztlich die gleichen Möglichkeiten wie der gerade genannte Database as a Service, aber im Gegensatz zu diesem auf einer dedizierten, für den Kunden reservierten Exadata-Umgebung. Man "mietet" hier gewissermaßen ein virtualisiertes Exadata Quarter-, Half- oder Full-Rack in der Cloud und kann alle Vorteile von Exadata nutzen - wie z.B. beschleunigte Abfragen über intelligenten Storage ("Smart Scan".)
Dieser Artikel behandelt im Folgenden ausschließlich die mittlere der drei erwähnten Varianten, d.h. Database as a Service als virtuelle Maschine, welche der Einfachheit halber sowohl im weiteren Verlauf des Artikels sowie in vielen Oracle-Dokumenten ohne weitere Differenzierung nur mit dem Oberbegriff Database Cloud Service, kurz DBCS, bezeichnet wird.
Voraussetzungen
Den Zugang zu den Datenbankdiensten in der Oracle Cloud können Sie wahlweise als "Metered Service" (basierend auf einem nutzungsabhängigen Preismodell) oder aber als "Non-metered Service" (im Sinne eines nutzungsunabhängigen Abonnements zu monatlichen Fixpreisen) erwerben. Wenden Sie sich dazu an Ihre(n) Oracle Vertriebsbeauftragte(n) oder den Oracle Store.
Alternativ können Sie zunächst auch nur einen kostenfreien, zeitlich beschränkten Trial-Account über den "Try It"-Knopf auf https://cloud.oracle.com/database erhalten.
Ihre Cloud-Ressourcen sind organisatorisch alle mit der "Identity Domain" verknüpft, deren Namen Sie bei der initialen Aktivierung Ihres Cloud-Accounts vergeben können. Da Sie diesen zum Login und für administrative Tätigkeiten benötigen, sollten Sie hier eine für Sie sinnvolle und leicht zu merkende Buchstaben- /Zahlenkombination wählen.
Außerdem benötigen Sie neben einem Browser noch einen SSH-Client (dazu gleich mehr) sowie einen beliebigen Datenbank-Client (z.B. Oracle SQLDeveloper).
Technische Vorarbeiten (einmalig)
Der Zugriff auf die DBCS-Datenbanken ist grundsätzlich zum einen über die klassischen Zugriffsmethoden wie z.B. SQL*Net möglich, zum anderen aber auch direkt auf Systemebene über das Einloggen in die VM, welche die Datenbank beherbergt. Aus Sicherheitsgründen ist letzteres nur über eine mittels Public & Private Key verschlüsselte SSH-Verbindung möglich. Außerdem sind initial außer SSH alle anderen Netzwerk-Ports der VM gesperrt.
Daraus folgt, dass man zunächst ein solches SSH-Schlüsselpaar erzeugen muss, da sonst gar keine DBCS-Instanz angelegt werden kann. Unter Windows kann man hierzu z.B. das zum grafischen SSH-Client "PuTTY" gehörende "PuTTY Key Generator" (PuTTYgen) verwenden. Unter Linux und MacOS wird man eher auf das meist ohnehin schon installierte Kommandozeilentool "ssh-keygen" zurückgreifen. Die genaue Vorgehensweise entnehmen sie bitte der Dokumentation.
Bewahren Sie Ihren Private Key sicher auf, da Sie ohne diesen KEINEN Zugang zur Betriebssystem-Ebene Ihrer DBCS-Instanz haben!
Erstellen einer DBCS / Database as a Service Instanz
Hat man die oben genannten einmaligen technischen Vorarbeiten erledigt, geht das Beantragen einer neuen DBCS-Instanz sehr einfach mittels eines mehrstufigen Wizards, der sich nach Klick auf "create instance" in der Database Cloud Service Console öffnet.
Die ersten drei Schritte dieses Wizards sind weitgehend selbsterklärend:
- Sie wählen zunächst die DBCS-Variante, die Sie erzeugen möchten. Empfehlenswert ist immer die Variante "mit Cloud Tooling", also einigen von Oracle bereits in der VM installierten sowie in der Cloud-Oberfläche bereitgestellten Werkzeuge für z.B. Backup und Patching. Diese trägt keinen Zusatz "Virtual Image" hinter dem Namen. (Die "Virtual Image"-Variante erfordert außerdem die Installation und Konfiguration der Datenbank von Hand.) Außerdem wählen Sie auf dieser Seite die Abrechnungsfrequenz (stündlich oder monatlich).
- Im nächsten Schritt entscheiden Sie sich für ein Release (11.2.0.4 oder 12.1.0.2 stehen derzeit zur Auswahl).
- Im dritten Schritt geht es um die Wahl einer Datenbank Edition bzw. eines Bundles an Datenbankoptionen. Beispielsweise stehen für Oracle 12c neben der "reinen" Enterprise Edition außerdem noch die Bundles "Enterprise Edition – High Performance" sowie "Enterprise Edition – Extreme Performance" zur Verfügung. Letztere ermöglicht die Nutzung aller DB-Optionen, die vorletzte hingegen schließt unter anderem RAC aus. (Die verfügbaren Editions/Bundles und deren Konditionen erfahren Sie vom Oracle Vertrieb oder auf der entsprechenden Seite von cloud.oracle.com.)
Interessant wird es nun im vierten und wichtigsten Schritt des Wizards:

Hier vergibt man unter "Service Configuration" zunächst einen Namen und eine optionale Beschreibung für die zu erstellende DBCS-Instanz.
Hinweis: In diesem Zusammenhang ist es wichtig zu verstehen, dass sich hier die Begriffe "Service" und "Instance", wie auch meist generell im DBCS-Umfeld, auf das "Gesamtkonstrukt" beziehen. D.h. es geht nicht um die "Database Instance" oder den "Database Service" im klassischen Sinne, sondern um die VM in der Datenbank. Man vergibt hier also keine Oracle SID, sondern den Namen der VM (welcher gleichzeitig auch der Hostname wird).
Außerdem entscheidet man sich für ein "Compute Shape" – letztlich eine Bezeichnung für eine vordefinierte Größe der VM, bestehend aus einer bestimmten Menge RAM und Rechenleistung. Letztere wird in OCPUs gemessen. Diese abstrakte Metrik wird lediglich deshalb verwendet, um unabhängig von den konkret in der Cloud verwendeten CPUs zu sein. Letztlich entspricht eine OCPU einem Core einer Intel Xeon CPU (mit eingeschaltetem Hyperthreading), also zwei Threads/virtuellen CPUs.
Im letzten Feld der DBCS-Instanz-Konfiguration wird nun der zuvor von Ihnen erzeugte SSH Public Key hochgeladen. (Wahlweise können Sie diesen auch per Copy&Paste einfügen, sollte er noch in Ihrer Zwischenablage sein.)
Unter "Database Configuration" findet man Felder für die Eigenschaften der eigentlichen Datenbank: Neben der SID für die Oracle Datenbankinstanz und (im Falle von 12c) dem Namen der darin zu erzeugenden Pluggable Database (PDB) wird hier die Menge an (Netto-) Speicherplatz eingestellt, den man für die Datenbank benutzen möchte. Das hier ebenfalls festzulegende "Administration Passwort" gilt gewissermaßen als "Masterkennwort" sowohl für die Datenbank (SYS und SYSTEM) als auch für das Login in diverse Administrationstools der DBCS-Instanz. Stellen Sie sicher, dass es den beim Klick auf das Fragezeichen-Symbol erscheinenden Regeln genügt, und merken Sie es sich gut.
Rechts unter "Backup and Recovery Configuration" wird eingestellt, wie das automatisch konfigurierte Backup funktionieren soll.
Zur Wahl stehen neben dem kompletten Verzicht ("None") die beiden Optionen "Block Storage only" sowie "Both Cloud Storage and Block Storage". Im letzteren Fall wird das Backup so konfiguriert, dass nur die letzten sieben Tage an RMAN Backups in der VM selbst vorgehalten werden, alle älteren Backups werden in den "Database Backup Service" (ebenfalls ein Plattform-Dienst der Oracle Cloud) ausgelagert.
Um den Rahmen dieses ersten Artikels nicht zu sprengen, wird die Konfiguration dieses Features an dieser Stelle nicht beschrieben. Wählen Sie daher hier "None".
Last but not least können Sie sich rechts unten außerdem durch Klick auf die entsprechenden Checkboxen entscheiden, ob sie eine zusätzliche PDB mit Demo-Daten installiert bekommen wollen, und ob Sie statt einer Single Instance Datenbank einen Zwei-Knoten-RAC erzeugen wollen.
Für letzteres müssen Sie allerdings zum einen im vorigen Screen "Enterprise Edition Extreme Edition" als Bundle ausgewählt haben, zum anderen muss die eingestellte VM Größe ("Shape Size") mindestens vier OCPUs (bei Trials: zwei OCPUs) entsprechen.
Nach einem letzten Klick auf "Next" wird eine Zusammenfassung angezeigt, deren Bestätigung dann zum Starten des Provisionierungsvorgangs Ihrer Cloud-Datenbank führt.
In der Database Cloud Service Console können Sie jederzeit erkennen, ob die Provisionierung noch läuft oder ob die DBCS-Instanz bereits fertig ist.
Überblick über die erzeugte DBCS-Instanz
Sobald der Provisionierungsvorgang abgeschlossen ist, können Sie durch Klick auf den Namen Ihrer soeben erzeugten DBCS-Instanz eine Detailseite erreichen. Auf dieser sehen sie u.a. deren IP-Adresse und die Connect-Informationen der darin laufenden Datenbank:

Neben den offensichtlichen Informationen, die Sie bereits im Erstellungsdialog gesehen haben (wie z.B. die Namen der Datenbank sowie der VM), finden Sie dort auch die zugewiesene Public IP-Adresse sowie den Connect String, mit dem Sie sich von beliebigen Datenbank-Clients aus zu Ihrer Datenbank verbinden können. "Out-of-the-box" ist dies jedoch aufgrund der bereits eingangs erwähnten Sicherheitseinstellungen nicht möglich. Anstatt nun in den Firewall-Einstellungen Ihrer DBCS-Instanz über die Konfiguration von sogenannten „Security Rules“ den Port 1521 zu öffnen ist es sicherer, den entsprechenden SQL*Net-Verkehr über SSH zu tunneln. Mit dem kostenfrei von Oracle angebotene SQL Developer geht dies, wie wir gleich sehen werden, sehr einfach.
Verbindung über Oracle SQL Developer
Blenden Sie zunächst mit dem Menü "Ansicht -> SSH" den Bereich "SSH-Hosts" in der Oberfläche ein - sofern noch nicht geschehen. Dort wählen Sie dann mittels Rechtsklick auf den obersten Knoten "SSH-Hosts" die Option "neuer SSH-Host..." und vergeben einen beliebigen Namen. Unter "Host" tragen Sie die IP-Adresse Ihrer DBCS-Instanz ein, der Benutzername ist "oracle". Kreuzen Sie "Schlüsseldatei verwenden" an und wählen Ihre im Rahmen der oben erwähnten Vorbereitung erzeugte Private Key Datei im OpenSSH-Format aus. Machen Sie außerdem einen Haken bei "Add a Local Port Forward". Hier vergeben Sie einen Namen, der das Ziel der Verbindung erkennen lässt (z.B. den Datenbanknamen). Die restlichen Einstellungen belassen Sie auf ihren Standardwerten.
Neben den offensichtlichen Informationen, die Sie bereits im Erstellungsdialog gesehen haben (wie z.B. die Namen der Datenbank sowie der VM), finden Sie dort auch die zugewiesene Public IP-Adresse sowie den Connect String, mit dem Sie sich von beliebigen Datenbank-Clients aus zu Ihrer Datenbank verbinden können. "Out-of-the-box" ist dies jedoch aufgrund der bereits eingangs erwähnten Sicherheitseinstellungen nicht möglich. Anstatt nun in den Firewall-Einstellungen Ihrer DBCS-Instanz über die Konfiguration von sogenannten „Security Rules“ den Port 1521 zu öffnen ist es sicherer, den entsprechenden SQL*Net-Verkehr über SSH zu tunneln. Mit dem kostenfrei von Oracle angebotene SQL Developer geht dies, wie wir gleich sehen werden, sehr einfach.
Verbindung über Oracle SQL Developer
Blenden Sie zunächst mit dem Menü "Ansicht -> SSH" den Bereich "SSH-Hosts" in der Oberfläche ein - sofern noch nicht geschehen. Dort wählen Sie dann mittels Rechtsklick auf den obersten Knoten "SSH-Hosts" die Option "neuer SSH-Host..." und vergeben einen beliebigen Namen. Unter "Host" tragen Sie die IP-Adresse Ihrer DBCS-Instanz ein, der Benutzername ist "oracle". Kreuzen Sie "Schlüsseldatei verwenden" an und wählen Ihre im Rahmen der oben erwähnten Vorbereitung erzeugte Private Key Datei im OpenSSH-Format aus. Machen Sie außerdem einen Haken bei "Add a Local Port Forward". Hier vergeben Sie einen Namen, der das Ziel der Verbindung erkennen lässt (z.B. den Datenbanknamen). Die restlichen Einstellungen belassen Sie auf ihren Standardwerten:

Beim anschließenden Anlegen der eigentlichen Verbindung (Datenbank Connection) über das Panel links oben im SQL Developer geben Sie dann zuerst wie gewohnt den Datenbankbenutzer sowie dessen Passwort an. Im Falle von "sys" entspricht das Passwort dem "Master Passwort", welches Sie bei der Erstellung der DBCS-Instanz angegeben haben. Anschließend referenzieren Sie den SSH-Tunnel, indem Sie "Verbindungstyp" auf "SSH" setzen und in dem dadurch erscheinenden Auswahlknopf den entsprechenden "Port Forward" auswählen, den Sie zuvor erzeugt haben.
Wenn Sie die eben erzeugte Connection im SQL Developer abgespeichert haben, können Sie mit dieser jederzeit über eine sichere SSH-Verbindung mit Ihrer DBCS-Datenbank arbeiten. Beachten Sie beim Nutzen der Verbindung, dass Sie von SQL Developer nach der Passphrase Ihres SSH-Keys gefragt werden (und nicht etwa nach dem Passwort des Datenbanknutzers, denn das haben Sie ja in der Connection hinterlegt).
Weitere Verwaltungs- und Zugriffsmöglichkeiten
Die direkteste Variante der Datenbanknutzung liegt darin, sich mittels eines beliebigen SSH-Clients (unter Windows zum Beispiel "PuTTY") für den User "oracle" eine Konsolensitzung zu eröffnen und darin dann SQL*Plus zu benutzen. Sie benötigen dazu die Public IP-Adresse, welche Sie auf der Detailseite Ihrer DBCS-Instanz finden. Beachten Sie dabei, dass Sie in Ihrem SSH-Client den Private Key angeben müssen, der zu dem Public Key gehört, welchen Sie beim "create instance" Wizard angegeben hatten. In PuTTY finden Sie die entsprechende Stelle links im Konfigurationsbaum unter dem Pfad "Connection -> SSH -> Auth".
Beim Connect erhalten Sie dann einen Prompt nach der Passphrase, welche Sie beim Erzeugen des Keys vergeben haben. Es handelt sich dabei also NICHT etwa um ein Passwort des "oracle"-Users in Ihrer DBCS-Instanz / VM. (Genauer: Die User in der VM haben überhaupt keine Passwörter und können ausschließlich mit Ihrem SSH-Key verwendet werden.)
Neben dem gerade verwendeten Nutzer "oracle" gibt es noch einen weiteren Betriebssystem-User, mit dem Sie sich einloggen können: Es handelt sich um den User "opc" - dieser wird für administrative Zwecke verwendet und kann mittels "sudo" auch root-Rechte in der Linux VM erlangen. Um einen einzelnen Befehl / ein Skript oder ähnliches als Benutzer root auszuführen, loggen Sie sich, wie gerade beschrieben, mit Ihrem Private Key auf die Public IP Ihrer DBCS-Instanz als "opc" ein und geben dann ein:
sudo <Kommando oder Skript>
Für eine komplette Shell mit root-Rechen geben Sie ein:
sudo -s
Neben der Verwendung und Verwaltung der Datenbank „zu Fuß“ auf der Kommandozeile, existieren natürlich auch komfortablere Möglichkeiten in der Oracle Cloud:
- Je nach Release (11g oder 12c) ist in jeder DBCS-Instanz auch die Database Console bzw. der Enterprise Manager Database Express verfügbar.
- Zusätzlich existiert mit dem „DBaaS Monitor“ ein einfach zu bedienendes, ebenfalls Browser-basiertes Verwaltungswerkzeug.
- Mit aktuellen Releases von Enterprise Manager Cloud Control (12c oder 13c) ist die Einbindung von in der Oracle Cloud betriebenen Datenbanken über sogenannte „Hybrid Agents“ auch in eine bestehende Enterprise Manager-Landschaft möglich.
Die Details und konkreten Konfigurationsschritte für die gerade genannten Möglichkeiten würden diesen Artikel jedoch sprengen, sodass bei Interesse auf die Links am Ende dieses Artikels verwiesen sei.
Fazit und Weitere Informationen zum Thema
Wie Sie in diesem Artikels sehen konnten, gibt es bei der Einrichtung und Nutzung von Datenbanken im Oracle Database Cloud Service bei jedem Schritt sowohl interne als auch externe Werkzeuge, die Datenbankadministratoren & -Entwicklern schnell zu einer flexiblen und leistungsfähigen Umgebung verhelfen.
Im Rahmen der "Oracle Cloud Now"-Kampagne erscheinen seit Mitte Februar 2016 wöchentlich deutschsprachige Videos mit verschiedenen Aspekten des Oracle Database Cloud Service. Dies betrifft auch Dinge, die in diesem Artikel aus Platzgründen zu kurz kamen: Wenn Sie z.B. daran interessiert sind, wie es um die Themen Backup/Recovery oder Security in der Cloud bestellt ist oder wie man am besten Daten in die frisch erzeugte Datenbank in der Cloud lädt, sollten Sie diese Seite besuchen:
http://tinyurl.com/OraCloudnow
Informationsseite zu Public Database as a Service Service auf cloud.oracle.com.


