Unser Newsletter rund um technische Themen,
das Unternehmen und eine Karriere bei uns.

4 Minuten Lesezeit (870 Worte)

Nur lesen bitte – Read-Only-Oracle-Home

„Read-Only-Oracle-Home“ ist ein oftmals noch unbekanntes und selten genutztes Feature, das Oracle mit der Version 18c der Datenbank eingeführt hat. Was macht dieses Feature und welche Vorteile bringt es mit sich? 

Was ist "Read-Only-Oracle-Home"?

"Read-Only-Oracle-Home" (im Folgenden kurz „ROOH“) ist ein Feature mit einem irreführenden Namen. Denn es bedeutet nicht, dass in das Installationsverzeichnis der Oracle-RDBMS-Software, das $ORACLE_HOME, nicht mehr geschrieben werden kann. Es bedeutet vielmehr, dass es ein "Software-Only-Oracle-Home" ist und dass Konfigurationsdateien wie spfile, Password-File und z. B. auch die Oracle Net-Konfiguration an anderer Stelle abgelegt werden. Dieser neue Ablageort sind zwei Unterverzeichnisse im $ORACLE_BASE-Verzeichnis, nämlich $ORACLE_BASE/dbs und $ORACLE_BASE/homes. Durch diese Trennung von Software und Konfigurationsdateien werden Software-Upgrades und -Patches vereinfacht.

Das Feature ist seit Oracle 18c verfügbar und seit Oracle 21c die Standard-Einstellung. Es kann aber in Oracle 21c noch deaktiviert werden.

Wie kann man "Read-Only-Oracle-Home" aktivieren?

Für die Aktivierung von ROOH gibt es das Tool „roohctl“: 

 $ORACLE_HOME/bin/roohctl -h 
Usage:  roohctl [<flag>] [<command> <option>] 
Following are the possible flags: 
-help 
 
Following are the possible commands: 
-enable Enable Read-only Oracle Home 
[-nodeList List of nodes in a cluster environment] 

Wenn man ROOH aktivieren will, dann darf aus diesem Oracle-Home weder eine Datenbank-Instanz noch ein Listener aktiv sein. Es ist also empfehlenswert, die Aktivierung direkt nach der Installation vorzunehmen.

Beispiel: 

$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 /u00/app/oracle/cfgtoollogs/roohctl/roohctl-230104PM014844.log for more details.
 

Die Deaktivierung von ROOH mittels „roohctl -disable“ ist möglich, aber nicht mehr dokumentiert.

Wie kann man nun feststellen, ob ROOH aktiviert ist? Dazu gibt es die Datei $ORACLE_HOME/install/orabasetab

cat $ORACLE_HOME/install/orabasetab
#orabasetab file is used to track Oracle Home associated with Oracle Base
/u00/app/oracle/product/19.17-ee:/u00/app/oracle:OraDB19Home1:Y:
 

Diese Datei enthält – durch Doppelpunkte getrennt – die folgenden Informationen:

  • Pfad zum Oracle Home
  • Pfad zum Oracle Base
  • Ist Read-Only-Oracle-Home aktiviert? (Y/N)
Oder man nutzt die neuen Befehle „orabasehome“ und „orabaseconfig“. Wenn ROOH nicht aktiviert ist, dann gibt „orabasehome“ den Oracle-Home-Pfad aus. Dort liegen dann – wie gewohnt – die Konfigurationsdateien:
$ORACLE_HOME/bin/orabasehome
/u00/app/oracle/product/19.17-ee
 

Ist ROOH allerdings aktiviert, dann hat dieser Befehl ein anderes Ergebnis: 

$ORACLE_HOME/bin/orabasehome
/u00/app/oracle/homes/OraDB19Home1
 

„orabaseconfig“ zeigt an, wo die Konfigurationsdateien der Datenbank-Instanzen liegen: 

$ORACLE_HOME/bin/orabaseconfig
/u00/app/oracle
 

Wenn ROOH nicht aktiv ist, dann gibt dieser Befehl den Oracle-Home-Pfad aus. Die Konfigurationsdateien liegen jeweils im Unterverzeichnis dbs. 

Wo liegen bei Read-Only-Oracle-Home die Konfigurationsdateien?

Die obigen Ausgaben zeigen, wo jetzt die Konfigurationsdateien liegen: in Unterverzeichnissen des $ORACLE_BASE-Verzeichnisses. Dort gibt es zwei neue Unterverzeichnisse:

  • dbs
  • homes

Im Unterverzeichnis dbs liegen – versions- und ORACLE_HOME-unabhängig - die Konfigurationsdateien der Datenbank-Instanzen, also spfile und Passwordfile.

Im Unterverzeichnis homes gibt es für jede Software-Installation ein Unterverzeichnis. Der Name des Verzeichnisses entspricht dabei dem Namen der Software-Installation im Inventory.

ls -al
total 0
drwxr-x---.  4 oracle oinstall  46 Jan  4 14:10 .
drwxr-xr-x.  8 oracle oinstall  95 Jan  4 14:07 ..
drwxr-x---.  7 oracle oinstall  78 Jan  4 13:48 OraDB19Home1
drwxr-x---. 10 oracle oinstall 113 Jan  4 14:10 OraDB21Home1
 

 Innerhalb dieser Verzeichnisse existiert die folgende Unterstruktur:

tree -d  $ORACLE_BASE/homes/OraDB21Home1
/u00/app/oracle/homes/OraDB21Home1
|-- assistants
|   `-- dbca
|       `-- templates
|-- cfgtoollogs
|   `-- sqlpatch
|       |-- 33516412
|       |   `-- 24589362
[…]
|-- dbs
|-- drdaas
|   `-- admin
|-- hs
|   `-- admin
|-- install
|-- log
|   |-- abel
|   |   `-- client
|   `-- diag
|-- mgw
|   `-- admin
|-- network
|   |-- admin 
|   |-- log
|   `-- trace
|-- rdbms
|   |-- audit
|   `-- log
|       `-- opatch
|           `-- lsinv
`-- sqlpatch
    |-- 33239276
    |   `-- 24468932
[…]
    `-- 34527084
        `-- 24956767
 

Anhand der Verzeichnisnamen sieht man, welche Daten dort abgelegt werden:

1. dbca/templates – Vorlagen des Database Configuration Assistants

2. cfgtoollogs/sqlpatch bzw. sqlpatch – Protokolle von datapatch über das Einspielen von Änderungen in die Datenbanken. In Oracle 19c werden diese Informationen noch im $ORACLE_HOME/sqlpatch-Verzeichnis abgelegt, auch wenn das ORACLE_HOME als ROOH konfiguriert ist.

3. dbs – ein leeres Verzeichnis

4. drdaas/admin, hs/admin und mgw/admin – Konfigurationsdateien für Oracle-Gateways. Auch diese Dateien sind in Oracle 19c noch im $ORACLE_HOME-Verzeichnisbaum abgelegt.

5. network/* – Konfigurations-, Log- und Trace-Dateien für Oracle Net. Allerdings sollten die Konfigurationsdateien (tnsnames.ora, listener.ora, sqlnet.ora etc.) nicht hier abgelegt werden, sondern in einem separaten Verzeichnis (Umgebungsvariable $TNS_ADMIN).

6. rdbms – Dieses Unterverzeichnis wird initial von Oracle für Log- und Audit-Dateien genutzt, bevor diese Informationen in die jeweils konfigurierten Verzeichnisse geschrieben werden.

Und was bringt mir das?

Read-Only-Oracle-Home führt zur Trennung zwischen der eigentlichen Software-Installation und den Konfigurationsdateien für diese Software. Bei anderen Software-Produkten ist das schon länger üblich. Bei der Oracle-Datenbank hat man früher oft mit symbolischen Links gearbeitet, die aus dem jeweiligen ORACLE_HOME-Verzeichnis heraus auf die eigentlichen Konfigurationsdateien gezeigt haben. ROOH erleichtert das Upgrade der Oracle-Software, denn das Kopieren der Konfigurationsdateien in das neue ORACLE_HOME entfällt. Weiterhin erleichtert ROOH ebenfalls das Patchen der Software, denn auch beim inzwischen bevorzugten Out-of-Place-Patching entfällt das Kopieren der Konfigurationsdateien.

Wir empfehlen daher, dieses Feature bei jeder Oracle-Installation zu aktivieren – und das nicht nur, weil es inzwischen der Standard ist, sondern weil es viele Vorteile bietet.

Seminarempfehlungen

Principal Consultant bei ORDIX

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Donnerstag, 26. Dezember 2024

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.