Blog Name
  • August 2018

18c: Read-Only Oracle Home - Trennung von Software und Datenbank

Die Mobilität von Datenbanken ist vor allem im Zeitalter des Cloud Computing von wachsender Bedeutung. Aber auch beim Betreiben von Datenbanken im heimischen Rechenzentrum wird man immer mit der Aufgabe konfrontiert, Datenbanken zwischen verschiedenen ORACLE_HOMEs oder Servern zu verschieben. Oracle 18c unterstützt dieses mit dem neuen Feature "Read-Only Oracle Home".

Wenn eine Datenbank von einem Server zu einem anderen, kompatiblen, Server verschoben werden muß, müssen alle Datenbank- und Konfigurationsdateien verschoben oder kopiert werden. Im Normalfall wird die Installation der Oracle Datenbank Software so vorgenommen, dass die Datenbankdateien nicht im ORACLE_HOME der Software positioniert sind und meistens wird ein zentraler Storage verwendet. Für diese Dateien ist der Aufwand also meist gering. Im Falle der Konfigurationsdateien gilt das aber nicht: sie liegen, wie zum Beispiel die init.ora oder SPFILE, im Verzeichnis $ORACLE_HOME/dbs. Wenn eine Datenbank von einem anderen ORACLE_HOME betrieben werden soll müssen also auch die Konfigurationsdateien aus dem alten ORASCLE_HOME heraus kopiert werden. Eine zentrale Speicherung würde hier eine große Vereinfachung bedeuten.

Dieses gilt übrigens nicht nur bei einem Verschieben einer Datenbank zwischen verschiedenen Servern. Das Patchen einer Datenbank wird oft im Rahmen eines Out-Of-Place Patchings vorgenommen, um vor allem die Downtime der Datenbank zu reduzieren. Dabei wird neben dem bislang genutzten ORACLE_HOME ein neues angelegt und dieses gepatcht. Bis hierhin ist die laufende Datenbank noch nicht betroffen. Um den Patch für die Datenbank zu aktivieren, muß diese nun heruntergefahren und mit dem neuen, gepatchten ORACLE_HOME hochgefahren werden. Auch muß meistens noch ein SQL-Skript gestartet werden. Beim Umzug dieser Datenbank von dem ungepatchten ORACLE_HOME zum gepatchten ORACLE_HOME muß auch das Kopieren der Konfigurationsdateien beachtet werden.

Der Trend geht dabei in Richtung "Gold Imaging". Das bedeudet, dass in der Fläche mit wenigen standardisierten "Gold Images" gearbeitet wird. Gepatcht wird dann nur noch die Referenzinstallation, die die Basis für dieses Image bildet. Nach der Erstellung einer neuen Image-Version (mit einem neuen Patch), wird dieses Image dann auf die Datenbankserver kopiert, also ein zum laufenden ORACLE_HOME ein paralleles, gepatchtes ORACLE_HOME erstellt. Dann muß die Datenbank wieder von einem ORACLE_HOME auf das neue ORACLE_HOME umziehen.

Um dieses "Umziehen" der Datenbank zu erleichtern bietet Oracle Database 18c die Möglichkeit einer strikten Trennung von Oracle Software und Datenbank. Das ORACLE_HOME wird also READ ONLY und kann jederzeit ausgetauscht werden. Dazu gibt es unter $ORACLE_BASE ein neues Unterverzeichnis mit dem Namen "homes", in dem dann für jedes ORACLE_HOME die Konfigurationsdateien liegen. Neben dem eigentlichen ORACLE_HOME gibt es zusätzlich:

  • ORACLE_BASE_HOME für benutzer- und instanzspezifische Dateien, sowie Logdateien
    1.      ORACLE_BASE_HOME = $ORACLE_BASE/homes/{OracleHomeName}
    2.      Hier liegen die Konfigurationsdateien und Logdateien für den Listener. Auch die Logdateien für die Assistenten wie DBCA werden hier gespeichert.
  • ORACLE_BASE_CONFIG für die Konfigurationsdateien
    1.      ORACLE_BASE_CONFIG = $ORACLE_BASE/dbs
    2.      Hier liegen init.ora, spfile und andere Dateien, die aus dem alten Verzeichnis $ORACLE_HOME/dbs bekannt sind.

Die Datenbankdateien liegen weiterhin in ihren eigenen Verzeichnisstrukturen.

Im Falle des oben beschriebenen Out-Of-Place Patchings bedeutet dieses also, dass bei einem "Umzug" der Datenbank von einem ORACLE_HOME zu einem anderen auf dem gleichen Server die Konfigurationsdateien zentral im ORACLE_BASE_CONFIG gespeichert sind und nicht vom alten zum neuen ORACLE_HOME kopiert werden müssen. Bei einem Umzug der Datenbank auf einen anderen Server liegen alle Dateien, die mit kopiert werden müssen in einem gemeinsamen Verzeichnis, was die Arbeit auch sehr erleichtert.

Die sehr empfehlenswerte Nutzung von Read-Only Homes muß nach der Installation der Oracle Software angegeben werden, wobei dieses nur für eine "Software-Only" Installation möglich ist, es also noch keine Datenbanken in diesem ORACLE_HOME gibt. Per Default wird eine Installation nach dem alten Muster (also nicht READ ONLY) vorgenommen, um eine Abwärtskompatibilität der Installationssstruktur zu gewährleisten. Die Schritte sind ganz einfach:

  1. 1. Durchführung einer "Software-Only" Installation
  2. 2. READ ONLY Home aktivieren
       $ $ORACLE_HOME/bin/roohctl -enable

       Enabling Read-Only Oracle home.
       Update orabasetab file to enable Read-Only Oracle home.
       Orabasetab file has been updated successfully.
       Create bootstrap directories for Read-Only Oracle home.
       Bootstrap directories have been created successfully.
       Bootstrap files have been processed successfully.
       Read-Only Oracle home has been enabled successfully.
       Check the log file /u01/app/oracle/cfgtoollogs/roohctl/roohctl-180724AM105822.log.
  • 3. Prüfen, ob der READ ONLY Modus aktiv ist. Das folgende Kommando zeigt die erstellten ORACLE_BASE_HOMEs an. Wenn die Ausgabe leer ist, ist der Modus NICHT aktiviert.
       $ $ORACLE_HOME/bin/orabasehome

       /u01/app/oracle/homes/OraDB18Home1
    1. 4. Erstellen von Datenbanken, zum Beispiel mit DBCA (empfohlen).

Solange noch keine Datenbanken in einem ORACLE_HOME erstellt wurden, kann auch wieder auf READ-WRITE Oracle Home (alte Methode) gewechselt werden mit

$ ./roohctl -disable

Disabling Read-Only Oracle home.
Update orabasetab file to disable Read-Only Oracle home.
Orabasetab file has been updated successfully.
Read-Only Oracle home has been disabled successfully.
Check the log file /u01/app/oracle/cfgtoollogs/roohctl/roohctl-180724AM110920.log.

 
Fazit

Oracle geht bei der Datenbank weiter den Weg in Richtung austauschbarer ORACLE_HOMEs und bietet einen Modus an, bei dem man die Trennung von Software und Datenbank noch strikter erreicht.

 
Verfügbarkeit und Download

Weitere Informationen


 

Zurück zum Anfang des Artikels

Zurück zur Community-Seite
 

Visit the Oracle Blog

 

Contact Us

Oracle

Integrated Cloud Applications & Platform Services