Wie richtet man eine SEHA-Datenbank ein – kurzgefasst

6. März 2022 Aus Von Markus Flechtner

“SEHA”, kurz für “Standard Edition High Availability”, ist eine in die Oracle Grid Infrastructure integrierte Failover-Lösung für Standard-Edition 2-Datenbanken. Wie richtet man so eine SEHA-Datenbank ein?

Installation der Oracle Grid Infrastructure

Grundlage für eine SEHA-Datenbank ist eine Standard-Installation der Oracle Grid Infrastructure in der Version 19c (RU 19.8 oder höher, am besten natürlich im aktuellen RU-Stand). Die Grid Infrastructure Installation für SEHA unterscheidet sich dabei nicht von einer Installation für eine RAC-Datenbank. Auf einem Cluster, auf dem eine SEHA-Datenbank läuft, können ja auch weitere Datenbanken, insbesondere auch RAC- oder RAC-One-Node-Datenbanken laufen.

In meiner Konfiguration habe ich die Grid Infrastructure 19.14 installiert:

grid@ernie:~/ [grinf19] $ORACLE_HOME/OPatch/opatch lspatches
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)
33534448;ACFS RELEASE UPDATE 19.14.0.0.0 (33534448)
33529556;OCW RELEASE UPDATE 19.14.0.0.0 (33529556)
33515361;Database Release Update : 19.14.0.0.220118 (33515361)
33239955;TOMCAT RELEASE UPDATE 19.0.0.0.0 (33239955)

 

Installation der RDBMS-Software (SE2)

Nachdem die GI installiert ist, muss man auf beiden Knoten die Standard Edition 2 der Datenbank installieren. Der OCW-Patchstand der Datenbank-Software sollte dabei dem Patchstand der GI enstsprechen. Da ein “opatchauto” RDBMS-Homes nur dann aktualisiert, wenn in diesem Home eine Datenbank läuft, muss man diesen Patch ggf. manuell installieren. In meinem Fall (19.14) ist das gemäß der Patchliste oben der Patch 33529556. Dazu packt man das GI-Release Update 19.14 aus, wechselt in das Unterverzeichnis “33529556” und spielt den Patch einfach mit OPatch ein.

oracle@ernie:/mnt/software/stage/19.14/33567274-gi/33509923/33529556/ [rdbms1914] $ORACLE_HOME/OPatch/opatch apply -silent
Oracle Interim Patch Installer version 12.2.0.1.28
Copyright (c) 2022, Oracle Corporation.  All rights reserved.


Oracle Home       : /u00/app/oracle/product/19.14-se
Central Inventory : /u00/app/oraInventory
   from           : /u00/app/oracle/product/19.14-se/oraInst.loc
OPatch version    : 12.2.0.1.28
OUI version       : 12.2.0.7.0
Log file location : /u00/app/oracle/product/19.14-se/cfgtoollogs/opatch/opatch2022-03-06_12-19-24PM_1.log

Verifying environment and performing prerequisite checks...

--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...
Oracle Interim Patch Installer version 12.2.0.1.28
[..]
Applying interim patch '33529556' to OH '/u00/app/oracle/product/19.14-se'
ApplySession: Optional component(s) [ oracle.has.crs.cvu, 19.0.0.0.0 ] , [ oracle.has.cvu, 19.0.0.0.0 ] , [ oracle.rhp.crs, 19.0.0.0.0 ] , [ oracle.has.crs, 19.0.0.0.0 ] , [ oracle.xag, 19.0.0.0.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.rdbms, 19.0.0.0.0...

Patching component oracle.has.db.cvu, 19.0.0.0.0...

Patching component oracle.has.db, 19.0.0.0.0...

Patching component oracle.has.common, 19.0.0.0.0...

Patching component oracle.has.rsf, 19.0.0.0.0...

Patching component oracle.rhp.db, 19.0.0.0.0...

Patching component oracle.rhp.common, 19.0.0.0.0...

Patching component oracle.has.common.cvu, 19.0.0.0.0...
Patch 33529556 successfully applied.
Sub-set patch [29585399] has become inactive due to the application of a super-set patch [33529556].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u00/app/oracle/product/19.14-se/cfgtoollogs/opatch/opatch2022-03-06_12-20-49PM_1.log

OPatch succeeded.

 

Das Ergebnis:

oracle@ernie:~/ [rdbms1914] $ORACLE_HOME/OPatch/opatch lspatches
33529556;OCW RELEASE UPDATE 19.14.0.0.0 (33529556)
33561310;OJVM RELEASE UPDATE: 19.14.0.0.220118 (33561310)
33515361;Database Release Update : 19.14.0.0.220118 (33515361)

OPatch succeeded.

 

Anlegen der Datenbank

Auf einem der Cluster-Knoten legt man jetzt die Datenbank an. Dabei gibt es keine Unterschiede zur “normalen” SE2-Datenbank”. Erst nachdem man die Datenbank angelegt hat, kann man sie zu einer SEHA-Datenbank machen. Abhängig davon, wie man die Datenbank angelegt hat, muss man nach dem Anlegen der DB evtl. noch das Passwordfile und das spfile ins ASM legen, damit  von beiden Knoten aus auf diese Dateien zugegriffen werden kann.

Bei mir sieht die Konfiguration meiner SEHA-Datenbank unmittelbar nach dem Anlegen mittels dbca so aus:

oracle@ernie:~/ [SEHACDB] srvctl config database -db SEHACDB
Database unique name: SEHACDB
Database name: SEHACDB
Oracle home: /u00/app/oracle/product/19.14-se
Oracle user: oracle
Spfile: +DATA/SEHACDB/PARAMETERFILE/spfile.292.1098623973
Password file:
Domain: markusdba.local
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: FRA,DATA
Mount point paths:
Services:
Type: SINGLE
OSDBA group: dba
OSOPER group: oper
Database instance: SEHACDB
Configured nodes: ernie
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

D.h., das Password File liegt noch im Dateisystem und muss ins ASM kopiert werden, damit auch der zweite Knoten darauf zugreifen kann.

grid@ernie:~/ [+ASM1] asmcmd pwcopy /u00/app/oracle/dbs/orapwSEHACDB +DATA/SEHACDB/orapwSEHACDB
copying /u00/app/oracle/dbs/orapwSEHACDB -> +DATA/SEHACDB/orapwSEHACDB

Anschließend noch die Datenbank-Konfiguration in der Cluster-Registry ändern:

oracle@ernie:/u00/app/oracle/dbs/ [SEHACDB] srvctl modify database -db SEHACDB -pwfile +DATA/SEHACDB/orapwSEHACDB

Umwandlung der Datenbank in eine SEHA-Datenbank

Die Datenbank wird zu einer SEHA-Datenbank, in dem man ihr den zweiten Cluster-Knoten als weiteren erlaubten Knoten hinzufügt.

oracle@ernie:/u00/app/oracle/dbs/ [SEHACDB] srvctl modify database -db SEHACDB -node ernie,bert

 

Damit ist die SEHA-Datenbank fertig.

 

Weitere Posts zu SEHA

 

Amazon-Partner-Link