Das Problem
Oracle Real Application Clusters (RAC)-Server werden auf CentOS/RHEL 7 ausgeführt und verwenden von ASMLib verwaltete iSCSI-Multipath-Festplatten. Beim Neustart des Servers werden Oracle ASMLib-Datenträger beim Booten nicht automatisch erkannt, was dazu führt, dass Oracle Cluster Ready Services (CRS) nicht gestartet werden können. ASM-Datenträger werden jedoch korrekt erkannt, wenn der Befehl oracleasm scandisks kurz nach dem Neustart des Servers manuell ausgeführt wird.
Es folgt die Oracleasm-Konfiguration
# cat /etc/sysconfig/oracleasm ... ORACLEASM_ENABLED=true ORACLEASM_UID=oracle ORACLEASM_GID=dba ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="" ORACLEASM_SCANEXCLUDE="" ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false ...
# cat -n /usr/lib/systemd/system/oracleasm.service 1 [Unit] 2 Description=Load oracleasm Modules 3 Requires=multipathd.service 4 After=multipathd.service ...
Die Lösung
Beim Überprüfen der Systemstartmeldungen im Systemprotokoll (/var/log/messages) ist Folgendes offensichtlich:
– oracleasm.service startet, bevor iscsid.service alle iSCSI-Ziele vollständig verfügbar/betriebsbereit macht und bevor multipathd.service hinzufügt mindestens ein Pfad zu iSCSI-Zielen.
– Der ohasd.service startet nach oracleasm.service, aber es werden keine ASM-Festplatten erkannt.
Ändern Sie die Datei /usr/lib/systemd/system/oracleasm.service und hängen Sie die beiden „Requires ‘ und ‚Nachher ‘ Zeilen mit iscsid.service multi-user.target um sicherzustellen, dass der oracleasm.service nach Abschluss von iscsid.service und multipathd.service startet und nachdem multi-user.target erreicht wurde, d. h.:
# cat -n /usr/lib/systemd/system/oracleasm.service 1 [Unit] 2 Description=Load oracleasm Modules 3 Requires=multipathd.service iscsid.service multi-user.target 4 After=multipathd.service iscsid.service multi-user.target ...
Ändern Sie die Datei /etc/systemd/system/oracle-ohasd.service – fügen Sie das „Nachher“ hinzu ‘ Zeile mit oracleasm.service um sicherzustellen, dass der CRS ohasd.service startet, nachdem oracleasm.service erfolgreich alle iSCSI-Multipath-ASM-Festplatten erkannt hat, d. h.:
# cat -n /etc/systemd/system/oracle-ohasd.service ... 5 [Unit] 6 Description=Oracle High Availability Services 7 After=syslog.target network-online.target remote-fs.target oracleasm.service ...Hinweis :Wenn /etc/systemd/system/oracle-ohasd.service nicht verfügbar ist, beziehen Sie sich bitte auf /etc/systemd/system/ohasd.service, das ähnliche Funktionen bereitstellt.