Wie richtet man eine SEHA-Datenbank ein – kurzgefasst
“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
- Blog-Post: Standard Edition High Availability – First Impressions (englisch)
- Vortrag “High Availability for SE2” (englisch)
- Blog-Post: Von 18c-SE2-RAC nach 19c-SEHA
- Artikel: “RedStack Magazin 3/2021: Hochverfügbarkeit für die Oracle Datenbank 19c SE2 mit SEHA“
Amazon-Partner-Link