Logo Oracle Deutschland Datenbank & Cloud Community  -  Juni 2016
Fortgeschrittene Konfigurationsmöglichkeiten beim Oracle Database Cloud Service mittels dbaascli
von Manuel Hoßfeld, Oracle Deutschland B.V. & Co. KG

Einer der Vorteile bei der Nutzung von Database-as-a-Service mit dem Oracle Database Cloud Service (DBCS) ist die Möglichkeit, über das mitgelieferte "Cloud Tooling" verschiedene Administrationstätigkeiten wie z.B. Patching oder Backup stark zu vereinfachen und zu automatisieren. In den bisherigen Artikeln (Teil 1, Teil 2, Teil 3) wurde ausschließlich auf die in der grafischen Oberfläche vorhandenen Möglichkeiten des Cloud Toolings eingegangen.

Spätestens wenn man mehrere DBCS Instanzen angelegt hat (oder noch anlegen möchte), kommt jedoch auch der Wunsch nach einer programmatischen Steuerung auf (z.B. per Kommandozeile / in Shellskripten.) Außerdem gibt es im Rahmen des Cloud Toolings einer DBCS Instanz auch Möglichkeiten, für die sich noch keine Entsprechung in der GUI findet. Je nach Anwendungsfall und Präferenz gibt es daher verschiedene Schnittstellen und Kommandozeilen-Werkzeuge, die in der folgenden Einleitung kurz beschrieben werden. In diesem Tipp wird eine davon anhand praxisnaher Beispiele näher beleuchtet.

Möglichkeiten der nicht-interaktiven Steuerung von Oracle Database Cloud Services

Die wichtigsten Möglichkeiten, DBCS Instanzen auch ohne GUI zu bedienen, sind folgende:

Eine Behandlung aller gerade genannten Schnittstellen und Werkzeuge würde den Rahmen dieses Artikels bei weitem sprengen. Daher beschränken wir uns im folgenden auf die Verwendung von dbaascli.

Grundlegende Funktionsweise des DBaaS Command Line Interface (dbaascli)

Hinweis: Im folgenden wird davon ausgegangen, dass Sie eine DBaaS Instanz vom Typ "Database Cloud Service" verwenden. Die Ausprägung "Database Cloud Service - Virtual Image" verfügt NICHT über das hier beschriebene Cloud Tooling.

Grundsätzlich kann dbaascli jederzeit nach SSH-Login in Ihre DBCS Instanz durch Eingabe des gleichnamigen Kommandos aufgerufen werden. Je nach konkretem Kommando geschieht dies entweder mit dem Betriebsystembenutzer "oracle" oder als "opc", um root-Rechte erlangen zu können.

Wenn Sie dbaascli ohne weitere Parameter aufrufen, arbeitet es in einem interaktiven Modus und wartet weitere Befehle ab - erkennbar am Prompt "DBAAS>".
Ein kurzer Hilfetext erläutert Ihnen den Umgang mit dem Werkzeug. Sie erreichen ihn durch Eingabe von help :

[oracle@nonrac-12c ~]$ dbaascli
DBAAS CLI version 1.0.0
DBAAS>help
Help for dbaascli
dbaascli is a command line interface for different tools to be used with Oracle Cloud DB.
This command line interface supports logging, command history and autocomplete.
Logging is done on a session level. Each time dbaascli is run the last log is overwritten.
To access command history use the up/down arrow keys as you would normally do in a terminal.
Autocomplete uses the Tab key. Autocomplete will complete to the longest common string in case there is not an exact match.
To obtain help on a command use the help keyword at the begining or end.
Autocomplete is supported if the first word is the "help" keyword.
Special commands are available.
The list of special commands is:

    -H
    -HELP
    ?         -   Get dbaascli help
    CLEAR     -   Clear the screen
    HELP      -   Get dbaascli help
    HIST      -   Print command line history
    HISTORY   -   Print command line history
    LIST      -   List available commands
    Q         -   Exit Command Line Interface
    QUIT      -   Exit Command Line Interface
DBAAS>


Beendet wird diese Sitzung dann wie in der Hilfe beschrieben durch Eingabe von "Q" oder "QUIT".
Alternativ können Sie ein spezfisches Kommando in Form eines oder mehrerer Schlüsselworte und Parameter auch direkt im Aufruf mitgeben. Um sich einen Überblick zu verschaffen lohnt sich die Eingabe von

dbaascli list

Wie schon zu vermuten resultiert dies in einer Liste aller Befehle die dbaascli kennt. Die folgende Beispielausgabe ist gekürzt:

DBAAS CLI version 1.0.0

Very Long Text, press q to quit
Available commands:
database bounce
database start
[...]
dataguard status
dataguard switchover
[...]
dv on
dv on cdb
dv on pdb
gg setup
gg status
[...]
listener status
listener stop
[...]
netsec config encryption
[...]
orec
tde config
tde rotate
tde rotate masterkey
[...]

Wie größtenteils bereits an den Namen der derzeit ca. 40 Kommandos zu sehen ist, umfasst das Einsatzgebiet von dbaascli mehrere Bereiche der Datenbankkonfiguration- und administration, wie z.B.:

Nutzung von dbaascli für Backup & Recovery

Sofern Sie beim Anlegen Ihrer DBCS Instanz automatische tägliche Backups aktiviert haben, können Sie diese mittels dbaascli einfach auf einen früheren Zeitpunkt wiederherstellen - z.B. falls Ihre Umgebung durch Tests oder Fehlbedienung unbrauchbar gewordenen ist. Hierzu wird das "orec" Unterkommando von dbaascli verwendet.
Im einfachsten Fall führen Sie eine Wiederherstellung auf Basis des letzten Backups durch.
Der Umgang mit Backup- und Recovery erfordert bei dbaascli root-Rechte. Loggen Sie sich also als User "opc" ein und setzen folgende Kommandos ab:

sudo -s
dbaascli orec --args -latest

Bitte beachten Sie dabei, dass nicht nur die Datenbank auf den Stand des letzten Backups zurückgesetzt wird, sondern auch die dazugehörigen Konfigurationsdateien.

Mehr Kontrolle haben Sie natürlich, wenn Sie gezielt ein bestimmtes Backup auswählen. Dazu wollen Sie in der Regel zunächst wissen, welche Backups überhaupt zur Verfügung stehen.
Hinweis: Alle folgenden Beispiele dieses Artikels setzen voraus dass Sie dazu wie oben erwähnt root-Rechte erlangt haben (also nach Login als "opc" eine root-Shell mit "sudo -s" geöffnet haben)

dbaascli orec --args -list

...für normale (also automatisch erzeugte) Backups, oder

dbaascli orec --args -keep -list

...für sogenannte "long-term" Backups welche Sie (z.B. über den Knopf in der GUI) selbst von Hand angelegt haben und die nicht dem voreingestellten Backup-Zyklus unterliegen. (Bei Interesse finden Sie Details zur konkreten Vorgehensweise des automatischen Backups inkl. Retention Policy im Abschnitt "Default Backup Configuration" der Dokumentation. Die intiale Einrichtung des Backups war außerdem auch Thema eines eigenen Artikels.)

In beiden Fällen wird eine Liste der Backups mit den dazugehörigen eindeutigen Markierungen ("Backup Tags") ausgegeben. Die Auswahl des gewünschten Backups erfolgt dann über den jeweiligen Tag, also

dbaascli orec --args -pitr TAG20160117T065489

für automatisch erstellte Backups und

dbaascli orec --args -keep -tag TAG20160117T065489

für ein "long-term" Backup.

Nutzung von dbaascli für Patching

Ein weiterer Bestandteil des Cloud Toolings neben den schon erwähnten Backup-Features ist die Möglichkeit, vorgeschlagene Patches (i.d.R. PSUs) einfach einspielen zu können. Wenn Sie dazu nicht die GUI verwenden können oder wollen, stellt auch hier dbaascli eine Alternative bereit. (Hinweis: Um welchen Patch es sich aktuell handelt, ist in der Datei /var/opt/oracle/patch/dbpatchm.cfg hinterlegt. Näheres dazu finden Sie in der Dokumentation.) Auch hier öffnen Sie wie im vorigen Kapitel beschrieben zunächst als User "opc" eine root-Shell mit sudo -s.

Empfehlenswert ist es, zunächst zu prüfen ob der Patch überhaupt eingespielt werden kann:

dbaascli dbpatchm --run -prereq

Sofern der "Prerequisite Check" keine Probleme anzeigt, kann anschließend der eigentliche Patchvorgang gestartet werden:

dbaascli dbpatchm --run -apply

Bitte beachten Sie dabei, dass dies eine kurze Downtime für Ihre Datenbank zur Folge hat.

Schlußbemerkungen

Da wir die o.g. Beispiele alle mit root-Rechten ausgeführt haben, ist es aus Sicherheitsgründen empfehlenswert, danach jeweils die laufende root-Shell mit exit zu verlassen.

Im Zuge der Einführung neuer Features im Database Cloud Service werden auch die Fähigkeiten von dbaascli (bzw. des Cloud Toolings generell) sukzessive erweitert. Für bereits länger laufende DBCS Instanzen ist es daher sinnvoll, gelegentlich ein Update des entsprechenden RPM-Pakets durchzuführen. Die hierfür benötigten Schritte sind in einem entsprechenden Kapitel der Dokumentation beschrieben: Updating the Cloud Tooling on Older Database Deployments

Weitere Informationen

Dokumentation:

dbaascli verfügt zwar über kein eigenes Kapitel in der DBCS Dokumentation, taucht dort aber an den jeweiligen relevanten Stellen für einzelne Tätigkeiten auf (z.B. Konfiguration von Backups). Für weitere Informationen zu diesem Werkzeug empfiehlt sich daher ein Blick in die jeweiligen Kapitel des allgemeinen DBCS Handbuchs:

Using Oracle Database Cloud - Database as a Service

Natürlich gibt es auch zu den anderen in der Einleitung erwähnten Automatisierungsmethoden entsprechende Dokumentation, z.B.:

psm CLI Reference

REST API for Oracle Database Cloud - Database as a Service

Zurück zum Anfang des Artikels

Zurück zur Community-Seite