ORACLE CLUSTERWARE 19C & SUSE LINUX ENTERPRISE SERVER 12 SOWIE VIER NICHT GANZ ALLTÄGLICHE HINDERNISSE

04.
Mai
2020
Veröffentlicht von: Rupert Neiß

Auch vermeintlich kleine Hindernisse können eine Clusterware-Installation erheblich behindern. Deswegen ist es unabdingbar, diese schon im Vorfeld der Installation zu erkennen und (temporäre-) Lösungen zu implementieren. Das ist umso wichtiger, bewegt man sich mit der Installation einer Oracle 19c Clusterware auf einem SUSE Betriebssystem auf nicht ganz so „etablierten Pfaden“ wie es bei der Installation auf einem Oracle Linux Betriebssystem der Fall wäre.

Dieser Monatstipp beleuchtet vier nicht so bekannte Hindernisse, die man im Vorfeld einer Installation der Oracle Clusterware 19c auf dem Betriebssystem SUSE Linux Enterprise Server 12 (SLES 12) aus dem Weg geräumt haben sollte. Andernfalls können diese die Installation erheblich behindern oder schlimmstenfalls zum Scheitern bringen.

KERNEL PARAMETER VM.HUGETLB_SHM_GROUP

Konfiguriert man anhand des „Oracle Grid Infrastructure Installation and Upgrade Guides 19c for Linux“ die doch recht bekannten Kernel Parameter wie bspw. shmall, shmmax semmni oder file-max entsprechend der Vorgaben aus dem Installation Guide, so kann man im Eifer des Gefechtes schnell übersehen, dass explizit für das SUSE Linux Enterprise Server System auch der Parameter vm.hugetlb_shm_group gesetzt werden muss.

Ist die Gruppenidentifikationsnummer der Gruppe „oinstall“ bspw. 1000, so trägt man diesen Wert für den Parameter /proc/sys/vm/hugetlb_shm_group wie folgt ein:

# echo 1000 > /proc/sys/vm/hugetlb_shm_group

Der Parameter vm.hugetlb_shm_group=1000 muss anschließend noch mit einem Editor in die Kernel Parameter Datei, z. B. unter /etc/sysctl.d/97-oracle-database-sysctl.conf hinzugefügt und als root mit dem Befehl

# /sbin/sysctl --system

aktiviert werden.

DEFAULT TASKSMAX

Seit der Version SLES 12 ist der DefaultTasksMax Parameter standardmäßig auf den Wert 512 eingestellt. Das kann zu einer Fehlfunktion der Services führen, da diese nicht mehr als 512 Prozesse oder Threads erzeugen können. So kann es beim Starten einer Datenbankinstanz via srvctl zu den im My Oracle Support (MOS) unter der Doc Id 2340986.1 genannten Fehlern wie

ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3

verbunden mit einem kurz danach stattfindenden Abbruch der Instanz kommen, da der Oracle High Availability Service Daemon (ohasd) nicht mehr als 512 Prozesse erzeugen darf.

In Bild 1 wird aber ersichtlich, dass der ohasd im Alltagsbetrieb weit mehr als die 512 Prozesse erzeugt.

null

Bild 1: Statusabfrage des ohasd und DefaultTasksMax

Abhilfe kann geschafft werden, indem man den Wert für den Parameter DefaultTasksMax in der Datei /etc/systemd/system.conf ausreichend hoch (65535) setzt, so dass der ohasd in der Lage ist, mehr als die 512 Prozesse zu erzeugen. Nach Setzen des Parameters muss der ohasd neu gestartet werden, um die Änderung zu aktivieren.

HARDWARE LOCK ELISION

Eine weitere Thematik ist die Hardware Lock Elision bei den Intel CPUs. Gemäß SuSE Document ID 7022289 „How to disable Hardware Lock Elision“ existiert ein Bug in einigen Intel CPUs, der die korrekte Ausführung der Lock Elision nicht ermöglicht. Weiter heißt es dort, dass die Oracle Grid Software anfällig für diesen Bug sei und es demzufolge während der Initialisierung zu einem Crash kommen kann. Um also Fehler wie

CRS-8503 [__lll_unlock_elision()+48] [Signal/Exception: 11] [Instruction Addr: 0x7f517e0b05e0] [Memory Addr: (nil)] [] [] [] [] [] [] [] []

zu vermeiden, ist es ratsam, vor Beginn der Installation die Hardware Lock Elision zu deaktivieren. Dies erreicht man, indem man auf den Knoten im Clusterverbund in der Datei /etc/ld.so.conf.d/noelision.conf den Wert /lib64/noelision einträgt und anschließend mit „Idconfig“ die Systembibliotheken in der Binärdatei /etc/ld.so.cache aktualisiert.

FoC_node:/etc/ld.so.conf.d # ls -l
total 4
-rw-r--r-- 1 root root 17 Dec 10 08:46 noelision.conf
FoC_node:/etc/ld.so.conf.d # cat noelision.conf
/lib64/noelision
detest1:/etc/ld.so.conf.d #

Da die Lock Elision die „libpthread“ Bibliotheken benutzt, sollten diese nach der erfolgreichen Aktualisierung wie folgt angezeigt werden:

FoC_node:/etc #  ldconfig -p | grep noelision
        libpthread.so.0 (libc6,x86-64, OS ABI: Linux 3.0.0) => /lib64/noelision/libpthread.so.0


OPEN SSH UND GI RUNINSTALLER

Ruft man „gridSetup.sh“ auf kann es bei der Konfiguration des Clusters (Schritt 4 von 17) zu folgender Fehlermeldung kommen:

[INS-06006] Passwordless SSH connectivity not set up between the following node(s): [<racnode2>].

Man wundert sich darüber, hatte man doch bereits im Vorfeld mit ssh-keygen die passwortlose Verbindung von einem zum anderen Rechner (und umgekehrt) eingerichtet und mit ssh auch schon erfolgreich getestet. Auch ein anschließender Versuch die SSH-Verbindung über die GUI einzurichten und anschließend zu testen, scheitert. Die Installation der Oracle 19.3c GI bricht an dieser Stelle ab.

Grund für den Abbruch ist das Vorhandensein von OpenSSH_7.2p2 in Kombination mit dem Betriebssystem SLES Linux 12 SP4.

FoC_node:~ # ssh -V
OpenSSH_7.2p2, OpenSSL 1.0.2p-fips  14 Aug 2018

Diesen Fehler umgeht man, indem man wie im MOS unter Doc_Id 2555697.1 beschrieben, die originäre Datei /usr/bin/scp umbenennt, anschließend eine neue leere „scp“ Datei erzeugt und diese neu erzeugte Datei mit einem Verweis und der Option „-T $*“ auf die originäre Datei versieht

mv /usr/bin/scp    /usr/bin/scp.orig
vi /usr/bin/scp
cat /usr/bin/scp
/usr/bin/scp.orig -T $*

Nach Fertigstellung der GI Installation darf man nicht vergessen, diese Änderungen durch Umbenennung der originären Datei auf den alten Namen wieder rückgängig zu machen:

mv /usr/bin/scp.orig /usr/bin/scp


FAZIT

Das Aufspüren und das Abstellen von – auch vermeintlich kleinen und weniger bekannten - Fehlerquellen ist im Vorfeld einer Clusterware-Installation ein wichtiger Arbeitsschritt, damit im Nachhinein die Installation selbst auf Anhieb gelingt und fehlerfrei durchgeführt werden kann.

Wenden Sie sich an unsere erfahrenen DBAs und Consultants. Wir beraten Sie gerne in allen Themen rund um Ihre Cluster-Installation.

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.