Marco Burmeister

  private Homepage



Oracle 26 - Clusterware und RAC-Installation im Proxmox-Umfeld auf openSUSE 16

Oracle 26 bzw. 23.26 ist nun auch als Installations-Medium für die On-Prem-Welt verfügbar (siehe Links-Bereich für Download-Link).
Ich wollte mir ansehen, wie die Multitenant-Welt mit CDB und PDB nun in der Clusterware abgebildet wurde. Dafür habe ich eine Test-Installation in einer virtuellen Umgebung durchgeführt. Die hier aufgeführte Anleitung funktioniert in allen Umgebungen, in denen ich eine gesharte Festplatte benötige und wo die Umgebung selbst keine gesharten Festplatten bereitstellen kann. Hierfür habe ich u.a. iSCSI und eine dritte VM genutzt.
Nach meiner Prüfung hatte ich die VMs wieder gelöscht.

Für den Aufbau der Clusterware-Umgebung habe ich 2 VMs mit openSUSE 16 für die Oracle Installation selbst aufgebaut und eine VM mit openSUSE 16 als iSCSI Target / Server zur Bereitstellung der gesharten Festplatten für die Clusterware / ASM Installation.

Auf der Grundlage mit der Clusterware habe ich dann die Datenbank-Installation durchgeführt und eine RAC-Umgebung erstellt.
Eine RacOneNode-Installation wäre ebenfalls möglich.

Die Installationsanleitung hier auf der Seite umfasst nicht die ganzen Installationsbildschirme, die während der openSUSE-, Clusterware- oder Datenbank-Installation angezeigt werden.
Ich habe mich darauf beschränkt, die wichtigsten Eckpunkte aufzuschreiben und gehe davon aus, dass Nutzer dieser Anleitung schon openSUSE-, Clusterware- oder Datenbank-Installation durchgeführt haben.
Im Link-Bereich finden sich viele Verweise, die auch die Clusterware- und Datenbank-Installations-Dialoge zeigen.

Mit dem hier beschriebenen Weg kann eine 2-Knoten Clusterware-Umgebung rein für kleine Funktions-Tests aufgebaut werden.

Die Anleitung hier stellt eine Arbeitshilfe dar, aber keine vollständige Anleitung mit allen Bildschirm-Dialogen!

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!

Die Seite ist in die folgenden Bereiche eingeteilt:




top Umgebung

Einführung

Um die Installation durchzuführen sind viele Vorarbeiten notwendig. Bei meiner Installation habe ich die meiste Zeit für die vorbereitenden Arbeiten benötigt.

Was wir außerhalb der Installation benötigen:



DNS-Namen

Wichtig ist bei den IP-Adressen, dass wir zwei grundsätzliche Netzbereiche benötigen.
Für die Außenkommunikation benötigen wir die öffentlichen IP Adressen. Hier benötigen wir auch für den Scan-Listener einen DNS-Namen, der auf 3 IP Adressen aufgelöst wird.
Dann benötigen wir noch für die interne Clusterware Kommunikation ein privates Netzwerk mit DNS-Namen und IP Adressen.
Wer seinem DNS nicht traut, kann die Angaben auch nochmals in der /etc/hosts eintragen. Habe ich dieses Mal nicht gemacht.
Folgende DNS-Namen werden im Folgenden benutzt werden (Netmask: 255.255.255.0):
Öffentliche IP Adressen:
IP-AdresseDNS-Name
192.168.50.10srviscsi.speedport.de
192.168.50.21srvrac1.speedport.de
192.168.50.22srvrac2.speedport.de
192.168.50.23srvvi1.speedport.de
192.168.50.24srvvi2.speedport.de
192.168.50.25orascan.speedport.de
192.168.50.26orascan.speedport.de
192.168.50.27orascan.speedport.de

Private IP Adressen - RAC Interconnect:
IP-AdresseDNS-Name
192.168.60.21priv1.speedport.de
192.168.60.22priv2.speedport.de


Proxmox - Netzwerkkarte

Falls nur eine Netzwerkkarte im Proxmox Server zur Verfügung steht, müssten wir noch ein Dummy-Netzwerk erstellen, um dort später in den VMs den RAC Interconnect zu konfigurieren. Zur grundsätzlichen Einrichtung, bitte auf der folgenden Seite schauen: Proxmox - internes Netzwerk festlegen
In meinem Beispiel habe ich dann vmbr0 als normales, öffentliches Netz und durch die o.a. Anleitung vmbr1 als Netzwerk-Bridge für den RAC Interconnect.

VM-Ressourcen

Ich werde 3 VMs aufbauen. Ein Server, welcher die iSCSI-Festplatten für die Clusterware und ASM bereitstellen wird. Im Oracle Clusterware / RAC Umfeld benötigen wir Festplatten, welche von verschiedenen Servern benutzt werden können. Dabei müssen die anderen Server parallel auf die Festplatten lesend und schreibend zugreifen können.
Welche Ressourcen werden benötigt:
VMCPU-CoreRAMFestplatte (lokal)
srviscsi2 4 GB32 GB (/dev/sda)
 5 GB (/dev/sdb)
25 GB (/dev/sdc)
20 GB (/dev/sdd)
srvrac1416 GB50 GB (/dev/sda)
srvrac2416 GB50 GB (/dev/sda)
Die lokalen Festplatten dienen bei der VM srviscsi für unterschiedliche Zwecke. Die /dev/sda dient als Boot-Disk, welche das Betriebssystem hält.
Die Festplatten mit 5 GB, 25 GB und 20 GB (/dev/sdb, /dev/sdc, /dev/sdd) haben absichtlich eine unterschiedliche Größe, um sie einfacher wiederzufinden. Sie werden dann für die Clusterware und das ASM von den anderen VMs genutzt werden. Hier darf kein Betriebssystem-Teil installiert werden. Die Platten bleiben erstmal leer.
Diese VM stellt die Platten nur für die RAC VMs srvrac1 und srvrac2 bereit.

Die lokalen Festplatten dienen bei der VM srvrac1 und srvrac2 als Boot-Disk, welche das Betriebssystem hält, sowie als Ablageort der Installations-Dateien und als Installationsort der Clusterware- und Datenbank-Software.

Die VM srviscsi benötigt nur eine Netzwerkkarte im öffentlichen Netz. Im Gegensatz dazu benötigen die VMs srvrac1 und srvrac2 zwei Netzwerkkarten. Später werden diese bei mir eth0 und eth1 heißen. Die Netzwerkkarte eth0 wird für die öffentliche Kommunikation dienen. Die private Kommunikation im RAC Interconnect wird über die Netzwerkkarte eth1 laufen (Bridge vmbr1).

top Vorarbeiten

Aufbau der VMs

Wir erstellen die VMs mit den unter der Überschrift "Umgebung" genannten Vorgaben. Auf allen VMs wird openSUSE 16 installiert - zunächst in Standard-Installation.

Software-Installation

Im Anschluss installieren wir noch weitere Software als Vorbereitung der Clusterware- und Datenbank-Installation.
VM srviscsi
Folgende Software muss installiert werden:
zypper install open-iscsi
zypper install targetcli-fb

VM srvrac1 und srvrac2
Folgende Software muss installiert werden:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
zypper install open-iscsi
zypper install bc glibc gcc8 insserv-compat libaio-devel libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 libjpeg8 libpcap1 libpcre1 libpng16 libstdc++6 libgfortran4 mksh make pixz policycoreutils policycoreutils-python-utils smartmontools sysstat xorg-x11-libs ipmiutil net-tools
zypper install unzip
zypper install make gcc gcc-c++
zypper install open-iscsi
zypper install bc glibc gcc8 insserv-compat libaio-devel ✂
libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel ✂
libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils ✂
libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 ✂
libjpeg8 libpcap1 libpcre1 libpng16 libstdc++6 libgfortran4 ✂
mksh make pixz policycoreutils policycoreutils-python-utils ✂
smartmontools sysstat xorg-x11-libs ipmiutil net-tools
zypper install unzip
zypper install make gcc gcc-c++


Alle VMs Folgendes muss auf alle VMs installiert werden, wenn wir mit den neuen Administrations-Tools arbeiten möchten:
zypper install cockpit
zypper install myrlyn
zypper install firefox
systemctl enable --now cockpit.socket

Einrichtung Netzwerk

Netzwerkkarten:
Die VMs laufen alle und müssen noch weiter eingerichtet werden. Für die VM des iSCSI Target / Server brauchen wir nicht unbedingt UDEV-Regeln.
Aber für die RAC VMs (srvrac1 und srvrac2) müssen wir UDEV-Regeln für die Netzwerkkarten anlegen.
  1. Anmeldung als OS Benutzer root
  2. Ausgabe Netzwerkkarten und MAC-Adresse mit dem Befehl
    ip addr
  3. Wir wechseln in das Verzeichnis für die UDEV-Regeln.
    cd /etc/udev/rules.d
  4. Wir legen uns ein neue Regel-Datei für die Netzwerkkarten an.
    vi 70-persistent-net.rules
  5. Nun tragen wir für die Netzwerkkarten Einträge an. Damit erhalten wir dann später bei jedem Restart immer die gleichen Device-Namen.
    Beispiel-Eintrag:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="bc:21:13:11:31:58", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="bc:21:13:d3:6e:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ✂
    ATTR{address}=="bc:21:13:11:31:58", ATTR{dev_id}=="0x0", ✂
    ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ✂
    ATTR{address}=="bc:21:15:d3:6e:78", ATTR{dev_id}=="0x0", ✂
    ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
  6. VM neu starten, damit die Einstellungen aktiv werden.
  7. Wir müssen dann noch die Netzwerkkarten in der Firewall konfigurieren.
    Ich hatte versuche ein wenig restriktiv zu sein, aber letztlich musste ich die Netzwerkkarten in die Trusted-Zone schieben. Sonst meckerte der Installer der Clusterware immer.
    firewall-cmd --permanent --zone=trusted --add-interface=eth0
    firewall-cmd --permanent --zone=trusted --add-interface=eth1
    firewall-cmd --reload


Einrichtung Hostnamen und IP-Adressen:
Hier müssen wir wieder den Server für iSCSI und die VMs für das eigentliche RAC unterscheiden.
Die VM für den iSCSI Target / Server wird den Hostnamen srviscsi erhalten (siehe auch oben).
Die VMs für das RAC erhalten für ihre Netzwerkkarten ebenfalls Hostnamen und IP-Adressen. (Hostname, Domain und IP-Adresse siehe Tabelle oben).
VMeth0eth1
1srvrac1priv1
2srvrac2priv2


Einrichtung NTP

Wir müssen prüfen, ob ein NTP-Daemon läuft. Bei mir lief chronyd nach der Installation.

iSCSI Einrichten

iSCSI Initiator / Client
Hier benötigen wir zunächst nur auf den RAC-VMs einen Befehl auszuführen, damit wir auf dem iSCSI Target / Server dann die richtigen Berechtigungen erteilen können.
Hierzu ausführen und Ausgabe merken:
cat /etc/iscsi/initiatorname.iscsi

Es könnte eine Ausgabe der folgenden Art herauskommen:
InitiatorName=iqn.1996-04.de.suse:01:61871b232c65


iSCSI Target / Server
Jetzt müssen wir uns die Festplatten einrichten, um dort die Clusterware und ASM Disks einrichten zu können. Die VM srviscsi dient ja als Server für die Festplatten, die die beiden RAC-VMs gleichzeitig benutzen müssen. Die entsprechende Einrichtung nehmen wir nun vor. Die Festplatten /dev/sdb, /dev/sdc und /dev/sdd werden nun vorbereitet.

Wir beginnen mit der Ausgabe des Befehls fdisk -l, um die Ausgabe mit den Erwartungen zu vergleichen. Die Platten /dev/sdb, /dev/sdc und /dev/sdd sollten alle leer sein und eine Größe in GB von 5, 25 und 20 haben.

Jetzt müssen wir uns noch einen Namen für die Festplatten festlegen. Folgende Kombination habe ich gewählt:
FestplatteName im iSCSI
/dev/sdboraclu
/dev/sdcoradat
/dev/sddorafra

Nun müssen wir die gleichen Code-Folgen im targetcli eingeben, um die drei Festplatten einzurichten. Dabei werden auch gleich die Berechtigungen auf die Platte erteilt. Am Ende können die RAC VMs dann sofort auf die Platten zugreifen.
In der folgenden Tabelle habe ich die Beispiel-Eingaben vorbereitet. Im folgenden Code-Block stehen dann an einigen Stellen Platzhalter, die dem Eingabeparameter entsprechen.
Der Name für den iSCSI Target / Server iqn.2026-01.local.srviscsi habe ich frei gewählt.
Die Namen der Initiator / Clients kommen aus der Ausgabe von cat /etc/iscsi/initiatorname.iscsi und sind hier beispielhaft aufgeschrieben.

Festplatte: /dev/sdb
PlatzhalterPlatzhalter-Wert
#iname#oraclu
#idevice#/dev/sdb
#isrvname#iqn.2026-01.local.srviscsi:oraclu
#initiator1#iqn.1996-04.de.suse:01:61871b232c65
#initiator2#iqn.1996-04.de.suse:01:a1feb76db147

Festplatte: /dev/sdc
#iname#oradat
#idevice#/dev/sdc
#isrvname#iqn.2026-01.local.srviscsi:oradat
#initiator1#iqn.1996-04.de.suse:01:61871b232c65
#initiator2#iqn.1996-04.de.suse:01:a1feb76db147

Festplatte: /dev/sdd
#iname#orafra
#idevice#/dev/sdd
#isrvname#iqn.2026-01.local.srviscsi:orafra
#initiator1#iqn.1996-04.de.suse:01:61871b232c65
#initiator2#iqn.1996-04.de.suse:01:a1feb76db147

Wir starten nun targetcli drei Mal hintereinander (für jede freizugebenden Festplatte ein Mal) und geben die folgenden Code-Teile ein:

(ACHTUNG: die Platzhalter müssen vor der Ausführung ersetzt werden!).

cd backstores/block
create name=#iname# dev=#idevice#
cd /iscsi
create #isrvname#
cd #isrvname#/tpg1/portals
--optional der Create bei alten Versionen der Software
create 0.0.0.0 3260
cd ../luns
create /backstores/block/#iname#
cd ../acls
create #initiator1#
create #initiator2#
cd /
saveconfig
exit

Nun schließen wir die Einrichtung von iSCSI ab und Starten die entsprechenden Daemons und öffnen die Firewall mit den folgenden Befehlen (ausführen als OS Benutzer root):
sudo systemctl enable --now targetcli
sudo systemctl enable --now target

sudo firewall-cmd --permanent --add-port=3260/tcp
sudo firewall-cmd --reload


iSCSI Initiator / Client
Nun schließen wir die Einrichtung von iSCSI auf dem Initiator / Client ab. Das sind die RAC VMs.

Die folgenden Befehle werden auf beiden RAC VM Knoten ausgeführt!

Die folgenden Befehle benötigen wieder den OS Benutzer root.
Zunächst starten wir den Daemon mit dem folgenden Befehl:
systemctl enable --now iscsid

Als nächsten Schritt prüfen wir die Ausgaben des folgenden Befehls, ob sie mit den am Anfang gemachten Abfragen noch übereinstimmen:
cat /etc/iscsi/initiatorname.iscsi

Im folgenden Schritt prüfen wir, welche Festplatte wir vom Server erhalten (IP 192.168.50.10 ist die Adresse vom iSCSI Target / Server):
iscsiadm -m discovery -t sendtargets -p 192.168.50.10

Wir sollten nun eine Ausgabe erhalten, die ähnlich aussieht, wie die folgende Ausgabe:
iqn.2026-01.local.srviscsi:oraclu
iqn.2026-01.local.srviscsi:oradat
iqn.2026-01.local.srviscsi:orafra

Jetzt führen wir zunächst eine Anmeldung aus:
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oraclu --login
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oradat --login
iscsiadm -m node -T iqn.2026-01.local.srviscsi:orafra --login

Im Anschluss können wir nun die Festplatten auch mit lsblk sehen.

Damit alles beim nächsten Boot auch wieder erscheint, sollten wir die folgenden Befehle ausführen:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oraclu --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oradat --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2026-01.local.srviscsi:orafra --op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oraclu ✂
--op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2026-01.local.srviscsi:oradat ✂
--op update -n node.startup -v automatic
iscsiadm -m node -T iqn.2026-01.local.srviscsi:orafra ✂
--op update -n node.startup -v automatic


Zum Schluss an dieser Stelle empfehle ich noch das Sicherstellen des Starts der Daemons.
sudo systemctl enable iscsid
sudo systemctl enable iscsi


An dieser Stelle würde ich das restarten der RAC VMs empfehlen.

Avahi Daemon deaktivieren

Dieser Schritt war bei meiner VM nicht notwendig. Den hatte ich nur bei anderen Anleitungen gefunden.
Die folgenden Befehle wären auf den beiden RAC VMs auszuführen:
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon


Anlage OS User und OS Gruppen

Jetzt legen wir auf den RAC VMs die notwendigen OS Benutzer und OS Gruppen als OS Benutzer root an.
Folgende Befehle (die Gruppennummern sind freigewählt und müssen frei sein!):
sudo groupadd -g 3001 oinstall
sudo groupadd -g 3002 dba
sudo groupadd -g 3003 oper
sudo groupadd -g 3004 backupdba
sudo groupadd -g 3005 dgdba
sudo groupadd -g 3006 kmdba
sudo groupadd -g 3007 asmdba
sudo groupadd -g 3008 asmoper
sudo groupadd -g 3009 asmadmin
sudo groupadd -g 3010 racdba

Danach legen wir die OS Benutzer an (die Usernummern sind freigewählt und müssen frei sein!):

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
sudo useradd -u 3001 -g oinstall -G dba,asmadmin,asmdba,asmoper,racdba grid
sudo useradd -u 3002 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle
sudo useradd -u 3001 -g oinstall ✂
-G dba,asmadmin,asmdba,asmoper,racdba grid
sudo useradd -u 3002 -g oinstall ✂
-G dba,oper,backupdba,dgdba,kmdba,asmdba,✂
asmoper,asmadmin,racdba oracle

Jetzt vergeben wir noch ein Passwort (besser ist es auch noch SSH-Keys zu definieren):
sudo passwd grid
sudo passwd oracle


Kernel Parameter

Nun dürfen wir noch Kernel Parameter auf den RAC VMs als OS Benutzer root definieren / eintragen.
Wir starten hierfür den Editor:
vi /etc/sysctl.conf

Die folgenden Werte hatte ich eingetragen:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
kernel.panic = 2


Zum Abschluss aktivieren wir die Parameter mit dem Befehl:
sysctl -p

Resource Limits

Jetzt müssen wir die Limits festlegen. Das werden wir auch wieder als OS Benutzer root durchführen.

Wir starten hierfür den Editor:
vi /etc/security/limits.conf

Die folgenden Werte hatte ich eingetragen:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 134217728
oracle hard memlock 134217728
oracle soft stack 10240

grid soft nofile 65536
grid hard nofile 65536
grid soft nproc 16384
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
grid soft memlock 134217728
grid hard memlock 134217728
grid soft stack 10240



SHM anlegen

Die Installation der Clusterware benötigt für ASM ein tmpfs für die Installation.
Dieses legen wir an, durch Eintragung in der /etc/fstab.

Wir starten hierfür den Editor als OS Benutzer root:
vi /etc/fstab

Folgende Zeile muss ergänzt werden:
tmpfs /dev/shm tmpfs size=4g 0 0

Zur Aktivierung muss dann noch ausgeführt werden:
mount -a


UDEV Regeln für die Festplatten und Partitionen anlegen

Jetzt kommen wir zu den Festplatten zurück. Wir haben via iSCSI ja Festplatten auf den RAC VMs bekannt gemacht. Damit wir sicherstellen können unsere Platten immer unter dem gleichen Namen auf dem VM zu finden, sind noch UDEV-Regeln festzulegen. Damit benötigen wir dann auch die ASMLIB Libraries nicht.
Außerdem müssen wir noch Partitionen auf den Platten anlegen.

Das machen wir in diesem Schritt als OS Benutzer root.
Die Schritte in dieser Zwischenüberschrift "UDEV Regeln für die Festplatten und Partitionen anlegen" müssen wir teilweise nur auf einem der beiden RAC Knoten ausführen!
Nur das Erstellen der UDEV-Regel-Datei muss auf beiden Knoten erfolgen.


UDEV-Regeln
Zur Vorbereitung schauen wir mit dem folgenden Befehl, ob wir unsere iSCSI Festplatten finden können:
ls /dev/sd*
Nun müssen wird die IDs ermitteln, die wir dann in den UDEV-Regeln verwenden:
/usr/lib/udev/scsi_id -gud /dev/sdb
/usr/lib/udev/scsi_id -gud /dev/sdc
/usr/lib/udev/scsi_id -gud /dev/sdd

Jetzt wechseln wir in das richtige Verzeichnis und erstellen die UDEV-Regel-Datei:
cd /etc/udev/rules.d
vi 99-asm-disk.rules

Ich habe nun ein Beispiel für die UDEV-Regeln. Die ID, die hinter RESULT== steht, muss angepasst werden auf die spezifische Situation auf dem System!

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ATTR{partition}=="1", PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", RESULT=="36004785ed02d05858954346944026a00", SYMLINK+="ORA_ASM_OCR_1", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ATTR{partition}=="1", PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", RESULT=="36003732f55b06027e9b46eaa2c3c4881", SYMLINK+="ORA_ASM_DATA_1", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ATTR{partition}=="1", PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", RESULT=="36009873c2fc193467294236a2c912c47", SYMLINK+="ORA_ASM_OFRA_1", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ✂
ATTR{partition}=="1", ✂
PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", ✂
RESULT=="36004785ed02d05858954346944026a00", ✂
SYMLINK+="ORA_ASM_OCR_1", OWNER="grid", ✂
GROUP="asmdba", MODE="0660"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ✂
ATTR{partition}=="1", ✂
PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", ✂
RESULT=="36003732f55b06027e9b46eaa2c3c4881", ✂
SYMLINK+="ORA_ASM_DATA_1", OWNER="grid", ✂
GROUP="asmdba", MODE="0660"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ✂
ATTR{partition}=="1", ✂
PROGRAM=="/usr/lib/udev/scsi_id -gud /dev/$name", ✂
RESULT=="36009873c2fc193467294236a2c912c47", ✂
SYMLINK+="ORA_ASM_OFRA_1", OWNER="grid", ✂
GROUP="asmdba", MODE="0660"

Die Datei 99-asm-disk.rules muss auf beiden VM RAC Knoten im Verzeichnis /etc/udev/rules.d als OS Benutzer root abgelegt werden.
Im Anschluss sollten beide VMs neu gestartet werden!

Partitionen
Nach der Konfiguration der UDEV-Regeln bleibt uns bei den Festplatten noch das Anlegen von Partitionen auf den leeren Festplatten für Clusterware / ASM.
Hierzu müssen wir auf den RAC VMs als OS Benutzer root die folgenden Befehle ausführen.
Wir starten nacheinander die Erstellung der primären Partitionen die Einstellung mit den Befehlen:
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd

Für jeden Aufruf von fdisk ist danach auszuführen um auf jeder Disk eine primäre Partition anzulegen:
n (new partition)
p (primary)
1 (partitionnummer)
(First sector - übernehmen)
(Last sector - übernehmen)
w (speichern )

Danach noch prüfen mit dem Befehl:
fdisk -l


Installationssoftware ablegen

Um die VMs gleich zu halten, habe ich auf beiden RAC Knoten die Installationssoftware abgelegt. Es muss aber nur auf dem Installations-Knoten abgelegt werden.
Ich habe hierfür ein Verzeichnis angelegt und darunter die Software abgelegt.
Folgendes habe ich als OS Benutzer root gemacht:
mkdir -p /INSTALL/DB
mkdir -p /INSTALL/Grid

Nun legen wir ab:
Die Installations-Zip-Datei für die Clusterware LINUX.X64_2326100_grid_home.zip in /INSTALL/Grid.
Danach die Datenbank-Zip-Datei namens LINUX.X64_2326100_db_home.zip ablegen in /INSTALL/DB.
Danach passen wir die Berechtigungen an:
chown -R oracle:dba /INSTALL
chown -R grid:dba /INSTALL/Grid


Installations-Verzeichnisse anlegen

Für die Installation benötigen wir noch Verzeichnisse. Ich kenne die OFA-Vorschläge von Oracle mag aber ein wenig mehr Trennung und Klarheit auf meinem System.
Die Verzeichnisse legen wir als OS Benutzer root an. Das muss auf beiden RAC VM Knoten erfolgen!
mkdir -p /grid/u01/app/23.26.0.0/
mkdir -p /grid/u01/app/grid
mkdir -p /oracle/u01/app/oracle
mkdir -p /oracle/u01/app/oracle/product/23.26.0.0

Das Inventory habe ich neutral abgelegt unterhalb von /opt.
Dafür muss angelegt werden:
mkdir /opt/oracle

Nun geben wir noch die notwendigen Berechtigungen:
chown -R grid:oinstall /grid
chown -R oracle:oinstall /oracle/
chmod -R 775 /grid
chmod -R 775 /oracle

chown grid:oinstall /opt/oracle
chmod g+w /opt/oracle


OS Benutzer Environment

Wir sollten unseren OS Benutzern als OS Benutzer root noch ein passendes Environment vergeben.
In dem Beispiel gehe ich davon aus, dass später eine Datenbank-Instanz mit dem Namen DBMBU angelegt werden wird.

OS Benutzer grid
Diesem Benutzer habe ich das folgende Environment gegeben:
VM RAC1
export ORACLE_SID=+ASM1
export ORACLE_BASE=/grid/u01/app/grid
export ORACLE_HOME=/grid/u01/app/23.26.0.0
export PATH=$ORACLE_HOME/bin:$PATH

export CV_ASSUME_DISTID=OEL8.0

VM RAC2
export ORACLE_SID=+ASM2
export ORACLE_BASE=/grid/u01/app/grid
export ORACLE_HOME=/grid/u01/app/23.26.0.0
export PATH=$ORACLE_HOME/bin:$PATH

export CV_ASSUME_DISTID=OEL8.0

OS Benutzer oracle
VM RAC 1
export ORACLE_SID=ORAMBU1
export ORACLE_BASE=/oracle/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23.26.0.0
export PATH=$ORACLE_HOME/bin:$PATH

export CV_ASSUME_DISTID=OEL8.0

VM RAC 2
export ORACLE_SID=ORAMBU2
export ORACLE_BASE=/oracle/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23.26.0.0
export PATH=$ORACLE_HOME/bin:$PATH

export CV_ASSUME_DISTID=OEL8.0


OS Benutzer SSH Equivalenz

Für die OS Benutzer grid und oracle benötigen wir noch SSH-Keys die so eingerichtet sind, dass der OS Benutzer grid sich auf beide RAC VMs ohne Passwort-Eingabe als Benutzer grid anmelden kann.
Für den OS Benutzer oracle gilt gleiches als Benutzer oracle.

Ein wechselseitiges händisches anmelden in allen Kombinationsmöglichkeiten muss vor dem Start der Clusterware- oder Datenbank-Installation durchgeführt werden, damit auch alle Bestätigungsabfragen mal bestätigt worden sind.

Zur Erstellung des Key aus einem der beiden Knoten, folgendes ausführen:
ssh-keygen -t rsa
Danach müssen die generierten Keys auf dem jeweils anderen Knoten abgelegt werden. Außerdem muss die Datei authorized_keys erzeugt werden.

SE Linux umstellen

SE Linux sollte im permissive Mode laufen. Hierfür als OS Benutzer root folgendes ausführen:
getenforce
setenforce 0
getenforce


Vorbereitungen abgeschlossen

Alle vorbereitenden Tätigkeiten sind hiermit erstmal abgeschlossen. Wir können nun zunächst die Clusterware-Installation beginnen und danach die Datenbank-Installation durchführen.

top Clusterware

Installation:
Nach den initialen Vorbereitungen müssen wir erstmal die Clusterware installieren.
Wir melden uns am ersten RAC VM Knoten als OS Benutzer grid an. Die Installation wird mit einer graphischen Oberfläche erfolgen, weshalb wir einen XServer auf dem Rechner benötigen.

Zunächst packen wir nun die Clusterware-Software im neuen ORACLE_HOME des OS Benutzers grid. Dazu führen wir den folgenden Befehl aus:


(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
unzip /INSTALL/Grid/LINUX.X64_2326100_grid_home.zip -d /grid/u01/app/23.26.0.0/
unzip /INSTALL/Grid/LINUX.X64_2326100_grid_home.zip ✂
-d /grid/u01/app/23.26.0.0/

Nun starten wir die Installation durch den Aufruf des folgenden Befehls (noch immer als OS Benutzer grid):
export CV_ASSUME_DISTID=OEL8.0
/grid/u01/app/23.26.0.0/gridSetup.sh


Es folgen ein paar Stichworte, zu den Eingaben, die bei der Installation notwendig sind.
Menüpunkt im InstallerEingabewert
Cluster-Namerac-cluster
Scan-Nameorascan
Scan-Port1521
Cluster-NodesHier muss immer der Hostname der öffentlichen Netzwerkkarten angegeben werden. Als zweiter Hostname je Knoten muss ein Hostname angegeben, welcher im DNS aufgelöst werden kann, aber noch nicht irgendwo vergeben ist.
Hier im Beispiel:
srvrac1 und srvvi1
srvrac2 und srvvi2
Netzwerkkarteneth0 = Public
eth1 = Private und ASM
OS GruppenOSASM asmadmin
OSDBA asmdba
OSOPER asmoper
Inventory/opt/oracle/oraInventory
ASM-DiskHier habe ich folgendes gewählt:
Diskgroup OCR mit Disk Path /dev/ORA_ASM_OCR_1.
Als Spiegel habe ich "External Redundancy" angegeben.

Bei meiner Installation musste ich ignorieren, dass mein OS nicht offiziell von Oracle unterstützt wird.
Zum Ende der Installation prüfte der Installer noch, ob ntp auf meinen VMs läuft. Bei mir läuft aber Chrony. Deshalb habe ich diese Fehlermeldung ignoriert, da alles andere ohne Fehler gemeldet wurde.

Prüfen nach Installation:
Die folgenden Befehle können nach der Installation zur Prüfung abgesetzt werden.
crsctl check cluster -all
crsctl stat res -t
asmcmd lsdg
ocrcheck
crsctl query css votedisk

top Datenbank

Vorbedingung:
Bevor wir die Datenbank installieren, muss die Clusterware installiert worden sein.

ASM-Disk vorbereiten:
In der Vorbereitung zur Datenbank Installation müssen wir noch im ASM die Speicherorte definieren.
Hierfür kann als OS Benutzer grid ein graphisches Frontend verwendet werden, welches auch wieder einen XServer benötigt.
Dazu rufen wir auf: asmca

Dann hatte ich definiert:

Diskgroup NameDevice
DATA/dev/ORA_ASM_DATA_1
FRA/dev/ORA_ASM_OFRA_1
Die Redundancy hatte ich auf External gestellt.

Datenbank installieren:
Wir melden uns am ersten RAC VM Knoten als OS Benutzer oracle an. Die Installation wird mit einer graphischen Oberfläche erfolgen, weshalb wir einen XServer auf dem Rechner benötigen.

Zunächst packen wir nun die Clusterware-Software im neuen ORACLE_HOME des OS Benutzers oracle. Dazu führen wir den folgenden Befehl aus:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
unzip /INSTALL/DB/LINUX.X64_2326100_db_home.zip -d /oracle/u01/app/oracle/product/23.26.0.0
unzip /INSTALL/DB/LINUX.X64_2326100_db_home.zip ✂
-d /oracle/u01/app/oracle/product/23.26.0.0

Nach dem Auspacken starten wir die Installation:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
export CV_ASSUME_DISTID=OEL8.0
/oracle/u01/app/oracle/product/23.26.0.0/runInstaller

export CV_ASSUME_DISTID=OEL8.0
/oracle/u01/app/oracle/product/23.26.0.0/runInstaller

Bei der Installation habe ich dann RAC ausgewählt.
Die Besonderheit, die während der Installation bei mir noch festzuhalten ist, ist die Gruppendefinition während der Installation.
Hier hatte ich eingetragen:
DB-GruppeOS Gruppe
OSDBAdba
OSOPERoper
OSBACKUPDBAbackupdba
OSDGDBAdgdba
OSKMDBAkmdba
OSRACDBAracdba

Ansonsten sind mir bei den Installations-Dialogen keine Besonderheiten aufgefallen. Es war wie früher auch.

Nach Abschluss der Datenbank-Installation sollte die Anmeldung an die Datenbank-Instanzen geprüft werden.
Dann wäre die Gesamt-Installation abgeschlossen.


top Links zum Thema


Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!