2010-01-29

Oracle RAC 11gR1 erfahren (Teil 3)

3             Installation Oracle Enterprise Linux 5 (Fortsetzung)

3.4         Linux Benutzer und Benutzerumgebung konfigurieren

Alle Schritte erfolgen als Betriebssystembenutzer root.

1)    Betriebssystemgruppen für die Oracle Installation anlegen.
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 crs

Ausgabe:
[root@vmrac1 ~]# groupadd -g 501 oinstall
[root@vmrac1 ~]# groupadd -g 502 dba
[root@vmrac1 ~]# groupadd -g 503 oper
[root@vmrac1 ~]# groupadd -g 504 crs
[root@vmrac1 ~]#

2)    Die Betriebssystembenutzer für die Oracle Installation anlegen.
Die folgenden Benutzer sollen angelegt werden:

Benutzer

ID

Login Gruppe

sonstige Gruppen

Verwendung zur Installation von

crs

500

oinstall

crs

Clusterware

oracle

501

oinstall

dba,
oper

ASM-Software Datenbanksoftware

Dazu für jeden Benutzer nacheinander prüfen, dass er auch noch nicht existiert, dann den Benutzer anlegen, danach ein Passwort zuweisen.
id crs
useradd -u 500 -g oinstall -G crs -s /bin/zsh crs
passwd crs
Diesen Vorgang für oracle wiederholen.
useradd -u 501 -g oinstall -G dba,oper -s /bin/zsh oracle

Ausgabe:
[root@vmrac1 ~]# id crs
id: crs: Einen solchen Benutzer gibt es nicht
[root@vmrac1 ~]# useradd -u 500 -g oinstall -G crs -s /bin/zsh crs
[root@vmrac1 ~]# passwd crs
Changing password for user crs.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@vmrac1 ~]#

3)    Die GID von oinstall muss als Wert von /proc/sys/vm/hugetlb_shm_group gesetzt werden:
echo 501 > /proc/sys/vm/hugetlb_shm_group

4)    Folgende Zeile muss in der Datei /etc/sysctl.conf hinzugefügt werden, um die vorgenannte Änderung permanent zu machen:
vm.hugetlb_shm_group=501
hierzu:
vi /etc/sysctl.conf

5)    Die Änderungen an den Kernel Parametern aktivieren
/sbin/sysctl –p

6)    Prüfen, dass nobody existiert.
id nobody

Ausgabe:
[root@vmrac1 ~]# id nobody
uid=99(nobody) gid=99(nobody) Gruppen=99(nobody)
[root@vmrac1 ~]#

7)    Die Shell-Limits für die Betriebssystembenutzer in /etc/security/limits.conf setzen.
vi /etc/security/limits.conf
Zeilen ergänzen:
crs             soft    nproc   2047
crs             hard    nproc   16384
crs             soft    nofile  1024
crs             hard    nofile  65536
oracle          soft    nproc   2047
oracle          hard    nproc   16384
oracle          soft    nofile  1024
oracle          hard    nofile  65536

8)    Folgende Zeile in die Datei /etc/pam.d/login eintragen, wenn sie noch nicht existiert:
session    required     pam_limits.so

Wichtig, die Zeile muss vor der Zeile mit „pam_selinux.so open“ stehen.

vi /etc/pam.d/login

9)    In der Datei /etc/profile die Konfiguration von ulimit für die Oracle Betriebssystembenutzer hinzufügen.
vi /etc/profile
Zeilen ergänzen:
# fuer Oracle
if [ $USER = "crs" -o $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

10)  In der Datei /etc/csh.login ebenfalls Zeilen für die Oracle Betriebssystembenutzer hinzufügen.
vi /etc/csh.login
Zeilen ergänzen:
# fuer Oracle
if ( $USER == "crs" -o $USER == "oracle" ); then
    limit maxproc 16384
    limit descriptors 65536
    umask 022
fi

11)  Abschließend die Installationsverzeichnisse für Clusterware, ASM Software und Datenbank Software anlegen.
mkdir -p  /u01/app/crs
chown -R crs:oinstall /u01/app
mkdir  /u01/app/asm
chown -R oracle:oinstall /u01/app/asm
mkdir  /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/

3.5         Environment Scripte einrichten

1)    Als Betriebssystembenutzer crs im Homeverzeichnis ein Skript zum Setzen der Umgebung für die Clusterware erstellen.
cd ~

2)    Für Clusterware:
vi crs.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle CLUSTERWARE Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && .
~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/crs
ORA_CRS_HOME=$ORACLE_HOME
TNS_ADMIN=$ORACLE_BASE/asm/network/admin
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

unset ORACLE_SID

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for clusterware ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

3)    Als Betriebssystembenutzer oracle im Homeverzeichnis jeweils ein Skript zum Setzen der Umgebung für ASM und Datenbank erstellen.
cd ~

4)    Für ASM:
vi asm.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle ASM Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && .
~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/asm
ORA_CRS_HOME=$ORACLE_BASE/crs
TNS_ADMIN=$ORACLE_HOME/network/admin
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:$ORA_CRS_HOME/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/opmn/lib:$ORA_CRS_HOME/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

ORACLE_SID=+ASM1

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for asm ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

5)    Für Datenbank:
vi db.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle DATENBANK Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && . ~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1
ORA_CRS_HOME=$ORACLE_BASE/crs
TNS_ADMIN=$ORACLE_BASE/asm/network/admin
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:$ORA_CRS_HOME/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/opmn/lib:$ORA_CRS_HOME/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

ORACLE_SID=demo1

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for database ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

6)    Die erste virtuelle Maschine, d.h. der erste RAC Knoten ist nun fertig mit dem Betriebssystem Installiert und für Oracle Software konfiguriert. Die virtuelle Maschine nun über das Linux Menü mit <System/Ausschalten> herunterfahren.
clip_image002
In der folgenden Dialogbox Ausschalten wählen.

7)    VMware Server Console beenden.

3.6         zweite virtuelle Maschine einrichten

Die bisher eingerichtete virtuelle Maschine hat Dateien in den Unterverzeichnissen rac1 und share erzeugt. Die Dateien in rac1 werden nur von der virtuellen Maschine zum RAC Knoten 1 verwendet.
clip_image004

Die Dateien in share sind für die Shared Disks, die von beiden virtuellen Maschinen aus erreichbar sind.
clip_image006

Im Verzeichnis rac2 liegen noch keine Dateien.
clip_image008

Für den RAC Knoten 2 werden die Dateien vom ersten RAC Knoten kopiert und dann wird die virtuelle Maschine angepasst.

1)    Die Konfigurationsdatei der virtuellen Maschine (vmx-Datei) und die Dateien der lokalen Platte (vmdk-Dateien) aus dem Verzeichnis rac1 in das Verzeichnis rac2 kopieren.
clip_image010

2)    Mit einem Doppelklick auf die vmx-Datei im Verzeichnis rac2 wird die VMware Server Console neu gestartet und die virtuelle Maschine des zweiten RAC Knoten in das Inventory aufgenommen. Die zweite virtuelle Maschine ist damit auch selektiert.
clip_image012

3)    Im Bereich Commands mit „Edit virtual machine settings“ den Assistenten zum Editieren starten.
clip_image014

4)    Auf dem Register Options den Namen der virtuellen Maschine von „RAC Knoten 1, …“ auf „RAC Knoten 2, …“ korrigieren. Mit OK bestätigen.
clip_image016

5)    Im Bereich Commands mit „Start this virtual machine“ die zweite virtuelle Maschine starten. Die erste virtuelle Maschine darf dabei nicht gestartet sein, da beide noch dieselben IP Adressen nutzen.
clip_image018

6)    In der Dialogbox durch Auswahl von Create (Vorgabe) und bestätigen mit OK eine neue UUID erzeugen.
clip_image020

7)    Das Hochfahren der Netzwerkdienste schlägt fehl, da sich mit der UUID auch die MAC Adressen der virtuellen Netzwerkkarten geändert haben. Dies kann man beobachten, wenn man beim Booten von Linux im grafischen Bildschirm die Details anzeigen lässt. (Es dauert etwas, bis die Fehlermeldung beim Hochfahren der Netzwerkdienste festgestellt wird angezeigt wird.)
clip_image022

8)    Am Anmeldebildschirm von Linux wieder mit dem Benutzer root anmelden und mit [enter] bestätigen.

9)    Um die Netzwerk-Konfiguration des zweiten Knoten anzupassen, den Assistenten über das Linux Menü mit <System/Administration/Netzwerk> starten.
clip_image024

10)  Die Netzwerkgeräte im Register Geräte mit Spitznamen eth0.bak und eth1.bak löschen. Das Entfernen in der nachfragenden Dialogbox mit ja bestätigen.
clip_image026

11)  Die Netzwerkkarte eth0 mit einem Doppelklick auf die entsprechende Zeile bearbeiten. Dazu auf der Registerkarte AllgemeinStatische Einstellungen der IP-Adresse:“ wählen und die öffentliche IP-Adresse und Subnet-Maske für den zweiten RAC Knoten angeben. Ggf. für ein Firmennetz ein Gateway festlegen. Mit OK bestätigen.
clip_image028

12)  Die Netzwerkkarte eth1 mit einem Doppelklick auf die entsprechende Zeile bearbeiten. Dazu auf der Registerkarte AllgemeinStatische Einstellungen der IP-Adresse:“ wählen und die IP-Adresse und Subnet-Maske des Interconnects für den zweiten RAC Knoten angeben. Mit OK bestätigen.
clip_image030

13)  Im Register DNS den Rechnernamen korrigieren. Ggf. für ein Firmennetz festgelegte Namensserver (DNS) sind von der Konfiguration des ersten Knoten übernommen und auch beim zweiten Knoten korrekt.
clip_image032

14)  Die Änderungen an den Netzwerkeinstellungen mit dem Menüpunkt <Datei/Speichern> sichern.
clip_image034

15)  Den nachfolgenden Hinweis mit OK bestätigen und die Netzwerk-Konfiguration schließen.
clip_image036

16)  Die zweite virtuelle Maschine, d.h. der zweite RAC Knoten ist nun fertig mit dem Betriebssystem Installiert und für Oracle Software konfiguriert. Die virtuelle Maschine nun über das Linux Menü mit <System/Ausschalten> herunterfahren.
clip_image002
In der folgenden Dialogbox Ausschalten wählen.

17)  In den Konfigurationsdateien der virtuellen Maschinen zu den beiden RAC Knoten (vmx-Dateien) sollte folgende Zeile manuell mit einem Editor (Notepad) hinzugefügt werden:
uuid.action = "keep"
Damit wird verhindert, dass beim Kopieren der virtuellen Maschinen in ein neues Verzeichnis eine neue UUID (universally unique identifier) generiert wird. Wenn das passiert ändert sich auch die MAC Adresse der Netzwerkkarten und die Netzwerkkonfiguration innerhalb des Clusters ist dann fehlerhaft.

18)  Nun beide virtuellen Maschinen starten. Am Anmeldebildschirm von Linux jeweils mit dem Benutzer root anmelden und mit [enter] bestätigen.

19)  In beiden VMs ein Terminal öffnen und jeweils alle Knoten anpingen, sowohl über das öffentliche, als auch das private Netz.
ping -c2 vmrac1
ping -c2 vmrac1-priv
ping -c2 vmrac2
ping -c2 vmrac2-priv
Die virtuellen Adressen (vmrac1-vip und vmrac2-vip) sind noch nicht aktiv und können daher noch nicht verwendet werden.

20)  Auf dem zweiten Knoten (vmrac2) als Betriebssystembenutzer oracle im Homeverzeichnis in den Skripten zum Setzen der Umgebung für ASM und Datenbank die Nummer der Instanz ändern.
cd ~

21)  In asm.env auf dem Knoten die Nummer der ASM Instanz anpassen
bei vmrac1 von +ASM1
abändern auf
bei vmrac2 auf +ASM2
mit
vi asm.env

22)  In db.env auf dem Knoten die Nummer der DB Instanz anpassen
bei vmrac1 von demo1
abändern auf
bei vmrac2 auf demo2
mit
vi db.env

3.7         SSH Äquivalenz herstellen

1)    Als nächstes wird die SSH Äquivalenz zwischen den beiden RAC Knoten für die zwei Betriebssystembenutzer crs und oracle eingerichtet. Dazu zunächst auf jedem Knoten mit dem Benutzer anmelden, das SSH Unterverzeichnis erstellen und einen SSH-Schlüssel generieren.
su - crs
mkdir ~/.ssh
chmod 700 ~/.ssh
/usr/bin/ssh-keygen -t rsa
Beim Generieren des SSH-Schlüssels die Vorgabe zum Dateinamen mit [enter] bestätigen. Abfragen nach passphrase leer lassen und mit [enter] bestätigen.

Ausgabe:
[root@vmrac2 ~]# su – crs
[crs@vmrac2]~% mkdir ~/.ssh
[crs@vmrac2]~% chmod 700 ~/.ssh
[crs@vmrac2]~% /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/crs/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/crs/.ssh/id_rsa.
Your public key has been saved in /home/crs/.ssh/id_rsa.pub.
The key fingerprint is:
76:ea:4e:63:0e:52:39:2f:8a:f1:67:b5:20:d4:71:f8 crs@vmrac2.team-pb.de
[crs@vmrac2]~%

2)    Dann die Keys über den Knoten 1 zusammenkopieren in die Schlüsseldatei.
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
ssh vmrac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Beim Übernehmen des Schüssels vom Knoten 2 die Abfrage mit yes beantworten und mit [enter] bestätigen. Das Passwort des crs Benutzers angeben und mit [enter] bestätigen.

Ausgabe:
[crs@vmrac1]~% cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
[crs@vmrac1]~% ssh vmrac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'vmrac2 (139.2.162.173)' can't be established.
RSA key fingerprint is 77:1e:e6:bb:e6:66:0c:84:5e:a5:bb:0f:9d:f8:84:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmrac2,139.2.162.173' (RSA) to the list of known hosts.
crs@vmrac2's password:
[crs@vmrac1]~%

3)    Die Schlüsseldatei von Knoten 1 auf den Knoten 2 kopieren.
scp ~/.ssh/authorized_keys vmrac2:~/.ssh/
Das Passwort des crs Benutzers angeben und mit [enter] bestätigen.

Ausgabe:
[crs@vmrac1]~% scp ~/.ssh/authorized_keys vmrac2:~/.ssh/
crs@vmrac2's password:
authorized_keys                               100%  806     0.8KB/s   00:00   
[crs@vmrac1]~%

4)    Für den crs Benutzer zunächst auf Knoten 1 und dann auf Knoten 2 die ausgetauschten SSH-Schüssel für jeden Hostnamen akzeptieren.
ssh vmrac1 date
ssh vmrac2 date
ssh vmrac1.team-pb.de date
ssh vmrac2.team-pb.de date
ssh vmrac1-priv date
ssh vmrac2-priv date
ssh vmrac1-priv.team-pb.de date
ssh vmrac2-priv.team-pb.de date
Jeweils die Abfrage mit yes beantworten und mit [enter] bestätigen.
Für die virtuellen IP-Adressen kann dies erst nach der Installation der Clusterware erfolgen (siehe Abschnitt 4.3).

Ausgabe:
[crs@vmrac1]~% ssh vmrac1.team-pb.de date
The authenticity of host 'vmrac1.team-pb.de (139.2.162.171)' can't be established.
RSA key fingerprint is 77:1e:e6:bb:e6:66:0c:84:5e:a5:bb:0f:9d:f8:84:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmrac1.team-pb.de' (RSA) to the list of known hosts.
Sa 13. Sep 00:00:48 CEST 2008
[crs@vmrac1]~%

5)    Werden die SSH Befehle aus Schritt 4) erneut ausgeführt, so sollten sie ohne weitere Eingabeaufforderung durchlaufen.

6)    Danach auf beiden Knoten als crs Benutzer ausloggen.


exit

7)    Die SSH-Konfiguration der vorhergehenden Schritte 1) bis 5) nun für den Benutzer oracle wiederholen.

3.8         ASMLib konfigurieren

1)    Nun die ASMLib konfigurieren. Dazu auf beiden Knoten unter dem Benutzer root in einem Terminalfenster folgenden Befehl ausführen:
service oracleasm configure
Die Abfrage nach dem Benutzer (user) mit oracle und die Abfrage nach der Gruppe (group) mit dba beantworten. Die beiden anderen Abfragen mit y beantworten.

Ausgabe:
[root@vmrac1 ~]# service oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y                
Writing Oracle ASM library driver configuration:           [  OK  ]
Loading module "oracleasm":                                [  OK  ]
Mounting ASMlib driver filesystem:                         [  OK  ]
Scanning system for ASM disks:                             [  OK  ]
[root@vmrac1 ~]#

2)    Als root User nur auf Knoten 1 (oder Knoten 2, nicht jedoch auf beiden Knoten):
service oracleasm createdisk ORADATA1 /dev/sdb1
service oracleasm createdisk ORADATA2 /dev/sdc1
service oracleasm createdisk ORARECO1 /dev/sdd1

Ausgabe:
[root@vmrac1 ~]# service oracleasm createdisk ORADATA1 /dev/sdb1
Marking disk "/dev/sdb1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]# service oracleasm createdisk ORADATA2 /dev/sdc1
Marking disk "/dev/sdc1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]# service oracleasm createdisk ORARECO1 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]#

3)    Als root User auf beiden Knoten prüfen, ob die Konfiguration korrekt ist.
service oracleasm scandisks
service oracleasm listdisks

Ausgabe:
[root@vmrac1 ~]# service oracleasm scandisks
Scanning system for ASM disks:                             [  OK  ]
[root@vmrac1 ~]# service oracleasm listdisks
ORADATA1
ORADATA2
ORARECO1

3.9         OCFS2 konfigurieren

1)    Nun wird das OCFS2 konfiguriert. Dazu zunächst auf jedem Knoten unter root einen Mountpoint /u02 anlegen.
mkdir /u02

Ausgabe:
[root@vmrac1 ~]# mkdir /u02
[root@vmrac1 ~]#

2)    Als root User nur auf Knoten 1 (oder Knoten 2, nicht jedoch auf beiden Knoten) durch Eingabe von ocfs2console in einem Terminalfenster mit dem root User die OCFS2 Konsole starten.
clip_image038

3)    Über das Konsolenmenü mit <Cluster/Configure Nodes…> die Konfiguration beginnen.
clip_image040

4)    Es erscheint nun ein Hinweisdialog.
clip_image042
Entsprechend der Anweisungen auf jedem Knoten unter root das folgende Kommando ausführen:
/etc/init.d/o2cb enable
Die Ausgabe Failed ist OK, da die Konfiguration ja noch nicht erfolgt ist. Den Hinweisdialog schließen.

Ausgabe auf Knoten 1:
[root@vmrac1 ~]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Checking O2CB cluster configuration : Failed
[root@vmrac1 ~]#

Ausgabe auf Knoten 2:
[root@vmrac2 ~]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Loading module "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Checking O2CB cluster configuration : Failed
[root@vmrac2 ~]#

5)    In der “Node Configuration” Hinzufügen wählen.
clip_image044

6)    Hostname des ersten Knoten so angeben, wie er bei der Eingabe von hostname ermittelt wird. Als IP-Adresse die Adresse des Interconnects angeben. Den Port wie vorgegeben belassen und mit OK bestätigen.
(Daten in der Abbildung nur beispielhaft)
clip_image046
Das gleiche für den zweiten Knoten wiederholen.

7)    In der “Node Configuration” Anwenden wählen.
(Daten in der Abbildung nur beispielhaft)
clip_image048

8)    Die “Node Configuration” schließen.
clip_image050

9)    Über das Konsolenmenü mit <Cluster/Propagate Configuration…> die Konfiguration auf die Knoten verteilen.
clip_image052

10)  Im aufpoppenden Shell-Fenster die Abfrage mit yes beantworten und das Passwort für den root User angeben. Nach Abschluss das Fenster schließen.
clip_image054

11)  Über das Konsolenmenü mit <Tasks/Format…> den Dialog zum Formatieren des OCFS2 Device aufrufen.
clip_image056

12)  Als „Volume label“ ocfs eingeben, alle übrigen Werte wie vorgegeben belassen und mit OK bestätigen.
clip_image058

13)  Die Nachfrage mit ja beantworten.
clip_image060

14)  Das formatierte Device nun mit Mount mounten.
clip_image062

15)  In der Dialogbox den Mountpoint /u02 und die Mountoptionen datavolume,nointr angeben und mit OK bestätigen. Das Device wird damit auf beiden Knoten gemounted.
clip_image064

16)  Die OCFS2 Konsole beenden, z.B. über das Konsolenmenü mit <File/Quit>.

17)  Datei /etc/fstab ergänzen
vi /etc/fstab
Zeile ergänzen:
/dev/sde1   /u02  ocfs2 _netdev,datavolume,nointr     0 0

18)  Die Cluster Timeouts für das OCFS2 müssen auf allen Knoten angepasst werden. Dazu den Service auf beiden Knoten unter root konfigurieren mit:
service o2cb configure
und die Punkte folgendermaßen beantworten:

Load O2CB driver on boot:          y
Cluster to start on boot:          ocfs2
Specify heartbeat dead threshold:  31
Use user-space driven heartbeat?:  n
Cluster keepalive delay (ms):      2000
Cluster reconnect dealy (ms):      2000
Cluster idle timeout (ms):         30000
Writing O2CB configuration:        OK

Ausgabe:
[root@vmrac1 ~]# service o2cb configure
Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
<ENTER> without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [7]: 31
Use user-space driven heartbeat? (y/n) [n]:
Cluster keepalive delay (ms) [5000]: 2000
Cluster reconnect dealy (ms) [2000]:
Cluster idle timeout (ms) [10000]: 30000
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
[root@vmrac1 ~]#

Oracle RAC 11gR1 erfahren (Teil 3)

3             Installation Oracle Enterprise Linux 5 (Fortsetzung)

3.4         Linux Benutzer und Benutzerumgebung konfigurieren

Alle Schritte erfolgen als Betriebssystembenutzer root.

1)    Betriebssystemgruppen für die Oracle Installation anlegen.
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 crs

Ausgabe:
[root@vmrac1 ~]# groupadd -g 501 oinstall
[root@vmrac1 ~]# groupadd -g 502 dba
[root@vmrac1 ~]# groupadd -g 503 oper
[root@vmrac1 ~]# groupadd -g 504 crs
[root@vmrac1 ~]#

2)    Die Betriebssystembenutzer für die Oracle Installation anlegen.
Die folgenden Benutzer sollen angelegt werden:

Benutzer

ID

Login Gruppe

sonstige Gruppen

Verwendung zur Installation von

crs

500

oinstall

crs

Clusterware

oracle

501

oinstall

dba,
oper

ASM-Software Datenbanksoftware

Dazu für jeden Benutzer nacheinander prüfen, dass er auch noch nicht existiert, dann den Benutzer anlegen, danach ein Passwort zuweisen.
id crs
useradd -u 500 -g oinstall -G crs -s /bin/zsh crs
passwd crs
Diesen Vorgang für oracle wiederholen.
useradd -u 501 -g oinstall -G dba,oper -s /bin/zsh oracle

Ausgabe:
[root@vmrac1 ~]# id crs
id: crs: Einen solchen Benutzer gibt es nicht
[root@vmrac1 ~]# useradd -u 500 -g oinstall -G crs -s /bin/zsh crs
[root@vmrac1 ~]# passwd crs
Changing password for user crs.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@vmrac1 ~]#

3)    Die GID von oinstall muss als Wert von /proc/sys/vm/hugetlb_shm_group gesetzt werden:
echo 501 > /proc/sys/vm/hugetlb_shm_group

4)    Folgende Zeile muss in der Datei /etc/sysctl.conf hinzugefügt werden, um die vorgenannte Änderung permanent zu machen:
vm.hugetlb_shm_group=501
hierzu:
vi /etc/sysctl.conf

5)    Die Änderungen an den Kernel Parametern aktivieren
/sbin/sysctl –p

6)    Prüfen, dass nobody existiert.
id nobody

Ausgabe:
[root@vmrac1 ~]# id nobody
uid=99(nobody) gid=99(nobody) Gruppen=99(nobody)
[root@vmrac1 ~]#

7)    Die Shell-Limits für die Betriebssystembenutzer in /etc/security/limits.conf setzen.
vi /etc/security/limits.conf
Zeilen ergänzen:
crs             soft    nproc   2047
crs             hard    nproc   16384
crs             soft    nofile  1024
crs             hard    nofile  65536
oracle          soft    nproc   2047
oracle          hard    nproc   16384
oracle          soft    nofile  1024
oracle          hard    nofile  65536

8)    Folgende Zeile in die Datei /etc/pam.d/login eintragen, wenn sie noch nicht existiert:
session    required     pam_limits.so

Wichtig, die Zeile muss vor der Zeile mit „pam_selinux.so open“ stehen.

vi /etc/pam.d/login

9)    In der Datei /etc/profile die Konfiguration von ulimit für die Oracle Betriebssystembenutzer hinzufügen.
vi /etc/profile
Zeilen ergänzen:
# fuer Oracle
if [ $USER = "crs" -o $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

10)  In der Datei /etc/csh.login ebenfalls Zeilen für die Oracle Betriebssystembenutzer hinzufügen.
vi /etc/csh.login
Zeilen ergänzen:
# fuer Oracle
if ( $USER == "crs" -o $USER == "oracle" ); then
    limit maxproc 16384
    limit descriptors 65536
    umask 022
fi

11)  Abschließend die Installationsverzeichnisse für Clusterware, ASM Software und Datenbank Software anlegen.
mkdir -p  /u01/app/crs
chown -R crs:oinstall /u01/app
mkdir  /u01/app/asm
chown -R oracle:oinstall /u01/app/asm
mkdir  /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/

3.5         Environment Scripte einrichten

1)    Als Betriebssystembenutzer crs im Homeverzeichnis ein Skript zum Setzen der Umgebung für die Clusterware erstellen.
cd ~

2)    Für Clusterware:
vi crs.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle CLUSTERWARE Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && .
~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/crs
ORA_CRS_HOME=$ORACLE_HOME
TNS_ADMIN=$ORACLE_BASE/asm/network/admin
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

unset ORACLE_SID

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for clusterware ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

3)    Als Betriebssystembenutzer oracle im Homeverzeichnis jeweils ein Skript zum Setzen der Umgebung für ASM und Datenbank erstellen.
cd ~

4)    Für ASM:
vi asm.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle ASM Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && .
~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/asm
ORA_CRS_HOME=$ORACLE_BASE/crs
TNS_ADMIN=$ORACLE_HOME/network/admin
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:$ORA_CRS_HOME/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/opmn/lib:$ORA_CRS_HOME/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

ORACLE_SID=+ASM1

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for asm ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

5)    Für Datenbank:
vi db.env
Datei mit folgendem Inhalt erstellen:
# Skript zum Setzen der Oracle DATENBANK Umgebung

# This might be helpful for Linux newbies who previously used DOS...
test -f /etc/profile.dos && . /etc/profile.dos
test -s ~/.alias && . ~/.alias

ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1
ORA_CRS_HOME=$ORACLE_BASE/crs
TNS_ADMIN=$ORACLE_BASE/asm/network/admin
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch:$ORA_CRS_HOME/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/sbin

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/opmn/lib:$ORA_CRS_HOME/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

ORACLE_SID=demo1

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN ORA_CRS_HOME

export TZ=MET

export OB=$ORACLE_BASE
export OH=$ORACLE_HOME


echo "*** environment for database ***"
echo "ORACLE_BASE  " $ORACLE_BASE
echo "ORA_CRS_HOME " $ORA_CRS_HOME
echo "ORA_ASM_HOME " $ORA_ASM_HOME
echo "ORACLE_HOME  " $ORACLE_HOME
echo "TNS_ADMIN    " $TNS_ADMIN
echo "ORACLE_SID   " $ORACLE_SID
echo ""

6)    Die erste virtuelle Maschine, d.h. der erste RAC Knoten ist nun fertig mit dem Betriebssystem Installiert und für Oracle Software konfiguriert. Die virtuelle Maschine nun über das Linux Menü mit <System/Ausschalten> herunterfahren.
clip_image002
In der folgenden Dialogbox Ausschalten wählen.

7)    VMware Server Console beenden.

3.6         zweite virtuelle Maschine einrichten

Die bisher eingerichtete virtuelle Maschine hat Dateien in den Unterverzeichnissen rac1 und share erzeugt. Die Dateien in rac1 werden nur von der virtuellen Maschine zum RAC Knoten 1 verwendet.
clip_image004

Die Dateien in share sind für die Shared Disks, die von beiden virtuellen Maschinen aus erreichbar sind.
clip_image006

Im Verzeichnis rac2 liegen noch keine Dateien.
clip_image008

Für den RAC Knoten 2 werden die Dateien vom ersten RAC Knoten kopiert und dann wird die virtuelle Maschine angepasst.

1)    Die Konfigurationsdatei der virtuellen Maschine (vmx-Datei) und die Dateien der lokalen Platte (vmdk-Dateien) aus dem Verzeichnis rac1 in das Verzeichnis rac2 kopieren.
clip_image010

2)    Mit einem Doppelklick auf die vmx-Datei im Verzeichnis rac2 wird die VMware Server Console neu gestartet und die virtuelle Maschine des zweiten RAC Knoten in das Inventory aufgenommen. Die zweite virtuelle Maschine ist damit auch selektiert.
clip_image012

3)    Im Bereich Commands mit „Edit virtual machine settings“ den Assistenten zum Editieren starten.
clip_image014

4)    Auf dem Register Options den Namen der virtuellen Maschine von „RAC Knoten 1, …“ auf „RAC Knoten 2, …“ korrigieren. Mit OK bestätigen.
clip_image016

5)    Im Bereich Commands mit „Start this virtual machine“ die zweite virtuelle Maschine starten. Die erste virtuelle Maschine darf dabei nicht gestartet sein, da beide noch dieselben IP Adressen nutzen.
clip_image018

6)    In der Dialogbox durch Auswahl von Create (Vorgabe) und bestätigen mit OK eine neue UUID erzeugen.
clip_image020

7)    Das Hochfahren der Netzwerkdienste schlägt fehl, da sich mit der UUID auch die MAC Adressen der virtuellen Netzwerkkarten geändert haben. Dies kann man beobachten, wenn man beim Booten von Linux im grafischen Bildschirm die Details anzeigen lässt. (Es dauert etwas, bis die Fehlermeldung beim Hochfahren der Netzwerkdienste festgestellt wird angezeigt wird.)
clip_image022

8)    Am Anmeldebildschirm von Linux wieder mit dem Benutzer root anmelden und mit [enter] bestätigen.

9)    Um die Netzwerk-Konfiguration des zweiten Knoten anzupassen, den Assistenten über das Linux Menü mit <System/Administration/Netzwerk> starten.
clip_image024

10)  Die Netzwerkgeräte im Register Geräte mit Spitznamen eth0.bak und eth1.bak löschen. Das Entfernen in der nachfragenden Dialogbox mit ja bestätigen.
clip_image026

11)  Die Netzwerkkarte eth0 mit einem Doppelklick auf die entsprechende Zeile bearbeiten. Dazu auf der Registerkarte AllgemeinStatische Einstellungen der IP-Adresse:“ wählen und die öffentliche IP-Adresse und Subnet-Maske für den zweiten RAC Knoten angeben. Ggf. für ein Firmennetz ein Gateway festlegen. Mit OK bestätigen.
clip_image028

12)  Die Netzwerkkarte eth1 mit einem Doppelklick auf die entsprechende Zeile bearbeiten. Dazu auf der Registerkarte AllgemeinStatische Einstellungen der IP-Adresse:“ wählen und die IP-Adresse und Subnet-Maske des Interconnects für den zweiten RAC Knoten angeben. Mit OK bestätigen.
clip_image030

13)  Im Register DNS den Rechnernamen korrigieren. Ggf. für ein Firmennetz festgelegte Namensserver (DNS) sind von der Konfiguration des ersten Knoten übernommen und auch beim zweiten Knoten korrekt.
clip_image032

14)  Die Änderungen an den Netzwerkeinstellungen mit dem Menüpunkt <Datei/Speichern> sichern.
clip_image034

15)  Den nachfolgenden Hinweis mit OK bestätigen und die Netzwerk-Konfiguration schließen.
clip_image036

16)  Die zweite virtuelle Maschine, d.h. der zweite RAC Knoten ist nun fertig mit dem Betriebssystem Installiert und für Oracle Software konfiguriert. Die virtuelle Maschine nun über das Linux Menü mit <System/Ausschalten> herunterfahren.
clip_image002
In der folgenden Dialogbox Ausschalten wählen.

17)  In den Konfigurationsdateien der virtuellen Maschinen zu den beiden RAC Knoten (vmx-Dateien) sollte folgende Zeile manuell mit einem Editor (Notepad) hinzugefügt werden:
uuid.action = "keep"
Damit wird verhindert, dass beim Kopieren der virtuellen Maschinen in ein neues Verzeichnis eine neue UUID (universally unique identifier) generiert wird. Wenn das passiert ändert sich auch die MAC Adresse der Netzwerkkarten und die Netzwerkkonfiguration innerhalb des Clusters ist dann fehlerhaft.

18)  Nun beide virtuellen Maschinen starten. Am Anmeldebildschirm von Linux jeweils mit dem Benutzer root anmelden und mit [enter] bestätigen.

19)  In beiden VMs ein Terminal öffnen und jeweils alle Knoten anpingen, sowohl über das öffentliche, als auch das private Netz.
ping -c2 vmrac1
ping -c2 vmrac1-priv
ping -c2 vmrac2
ping -c2 vmrac2-priv
Die virtuellen Adressen (vmrac1-vip und vmrac2-vip) sind noch nicht aktiv und können daher noch nicht verwendet werden.

20)  Auf dem zweiten Knoten (vmrac2) als Betriebssystembenutzer oracle im Homeverzeichnis in den Skripten zum Setzen der Umgebung für ASM und Datenbank die Nummer der Instanz ändern.
cd ~

21)  In asm.env auf dem Knoten die Nummer der ASM Instanz anpassen
bei vmrac1 von +ASM1
abändern auf
bei vmrac2 auf +ASM2
mit
vi asm.env

22)  In db.env auf dem Knoten die Nummer der DB Instanz anpassen
bei vmrac1 von demo1
abändern auf
bei vmrac2 auf demo2
mit
vi db.env

3.7         SSH Äquivalenz herstellen

1)    Als nächstes wird die SSH Äquivalenz zwischen den beiden RAC Knoten für die zwei Betriebssystembenutzer crs und oracle eingerichtet. Dazu zunächst auf jedem Knoten mit dem Benutzer anmelden, das SSH Unterverzeichnis erstellen und einen SSH-Schlüssel generieren.
su - crs
mkdir ~/.ssh
chmod 700 ~/.ssh
/usr/bin/ssh-keygen -t rsa
Beim Generieren des SSH-Schlüssels die Vorgabe zum Dateinamen mit [enter] bestätigen. Abfragen nach passphrase leer lassen und mit [enter] bestätigen.

Ausgabe:
[root@vmrac2 ~]# su – crs
[crs@vmrac2]~% mkdir ~/.ssh
[crs@vmrac2]~% chmod 700 ~/.ssh
[crs@vmrac2]~% /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/crs/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/crs/.ssh/id_rsa.
Your public key has been saved in /home/crs/.ssh/id_rsa.pub.
The key fingerprint is:
76:ea:4e:63:0e:52:39:2f:8a:f1:67:b5:20:d4:71:f8 crs@vmrac2.team-pb.de
[crs@vmrac2]~%

2)    Dann die Keys über den Knoten 1 zusammenkopieren in die Schlüsseldatei.
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
ssh vmrac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Beim Übernehmen des Schüssels vom Knoten 2 die Abfrage mit yes beantworten und mit [enter] bestätigen. Das Passwort des crs Benutzers angeben und mit [enter] bestätigen.

Ausgabe:
[crs@vmrac1]~% cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
[crs@vmrac1]~% ssh vmrac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'vmrac2 (139.2.162.173)' can't be established.
RSA key fingerprint is 77:1e:e6:bb:e6:66:0c:84:5e:a5:bb:0f:9d:f8:84:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmrac2,139.2.162.173' (RSA) to the list of known hosts.
crs@vmrac2's password:
[crs@vmrac1]~%

3)    Die Schlüsseldatei von Knoten 1 auf den Knoten 2 kopieren.
scp ~/.ssh/authorized_keys vmrac2:~/.ssh/
Das Passwort des crs Benutzers angeben und mit [enter] bestätigen.

Ausgabe:
[crs@vmrac1]~% scp ~/.ssh/authorized_keys vmrac2:~/.ssh/
crs@vmrac2's password:
authorized_keys                               100%  806     0.8KB/s   00:00   
[crs@vmrac1]~%

4)           Für den crs Benutzer zunächst auf Knoten 1 und dann auf Knoten 2 die ausgetauschten SSH-Schüssel für jeden Hostnamen akzeptieren.
ssh vmrac1 date
ssh vmrac2 date
ssh vmrac1.team-pb.de date
ssh vmrac2.team-pb.de date
ssh vmrac1-priv date
ssh vmrac2-priv date
ssh vmrac1-priv.team-pb.de date
ssh vmrac2-priv.team-pb.de date
Jeweils die Abfrage mit yes beantworten und mit [enter] bestätigen.
Für die virtuellen IP-Adressen kann dies erst nach der Installation der Clusterware erfolgen (siehe Abschnitt 4.3).

Ausgabe:
[crs@vmrac1]~% ssh vmrac1.team-pb.de date
The authenticity of host 'vmrac1.team-pb.de (139.2.162.171)' can't be established.
RSA key fingerprint is 77:1e:e6:bb:e6:66:0c:84:5e:a5:bb:0f:9d:f8:84:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmrac1.team-pb.de' (RSA) to the list of known hosts.
Sa 13. Sep 00:00:48 CEST 2008
[crs@vmrac1]~%

5)           Werden die SSH Befehle aus Schritt 4) erneut ausgeführt, so sollten sie ohne weitere Eingabeaufforderung durchlaufen.

6)           Danach auf beiden Knoten als crs Benutzer ausloggen.
exit

7)           Die SSH-Konfiguration der vorhergehenden Schritte 1) bis 5) nun für den Benutzer oracle wiederholen.

3.8         ASMLib konfigurieren

1)    Nun die ASMLib konfigurieren. Dazu auf beiden Knoten unter dem Benutzer root in einem Terminalfenster folgenden Befehl ausführen:
service oracleasm configure
Die Abfrage nach dem Benutzer (user) mit oracle und die Abfrage nach der Gruppe (group) mit dba beantworten. Die beiden anderen Abfragen mit y beantworten.

Ausgabe:
[root@vmrac1 ~]# service oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y                
Writing Oracle ASM library driver configuration:           [  OK  ]
Loading module "oracleasm":                                [  OK  ]
Mounting ASMlib driver filesystem:                         [  OK  ]
Scanning system for ASM disks:                             [  OK  ]
[root@vmrac1 ~]#

2)    Als root User nur auf Knoten 1 (oder Knoten 2, nicht jedoch auf beiden Knoten):
service oracleasm createdisk ORADATA1 /dev/sdb1
service oracleasm createdisk ORADATA2 /dev/sdc1
service oracleasm createdisk ORARECO1 /dev/sdd1

Ausgabe:
[root@vmrac1 ~]# service oracleasm createdisk ORADATA1 /dev/sdb1
Marking disk "/dev/sdb1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]# service oracleasm createdisk ORADATA2 /dev/sdc1
Marking disk "/dev/sdc1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]# service oracleasm createdisk ORARECO1 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk:                   [  OK  ]
[root@vmrac1 ~]#

3)    Als root User auf beiden Knoten prüfen, ob die Konfiguration korrekt ist.
service oracleasm scandisks
service oracleasm listdisks

Ausgabe:
[root@vmrac1 ~]# service oracleasm scandisks
Scanning system for ASM disks:                             [  OK  ]
[root@vmrac1 ~]# service oracleasm listdisks
ORADATA1
ORADATA2
ORARECO1

3.9         OCFS2 konfigurieren

1)    Nun wird das OCFS2 konfiguriert. Dazu zunächst auf jedem Knoten unter root einen Mountpoint /u02 anlegen.
mkdir /u02

Ausgabe:
[root@vmrac1 ~]# mkdir /u02
[root@vmrac1 ~]#

2)    Als root User nur auf Knoten 1 (oder Knoten 2, nicht jedoch auf beiden Knoten) durch Eingabe von ocfs2console in einem Terminalfenster mit dem root User die OCFS2 Konsole starten.
clip_image038

3)    Über das Konsolenmenü mit <Cluster/Configure Nodes…> die Konfiguration beginnen.
clip_image040

4)    Es erscheint nun ein Hinweisdialog.
clip_image042
Entsprechend der Anweisungen auf jedem Knoten unter root das folgende Kommando ausführen:
/etc/init.d/o2cb enable
Die Ausgabe Failed ist OK, da die Konfiguration ja noch nicht erfolgt ist. Den Hinweisdialog schließen.

Ausgabe auf Knoten 1:
[root@vmrac1 ~]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Checking O2CB cluster configuration : Failed
[root@vmrac1 ~]#

Ausgabe auf Knoten 2:
[root@vmrac2 ~]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Loading module "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Checking O2CB cluster configuration : Failed
[root@vmrac2 ~]#

5)    In der “Node Configuration” Hinzufügen wählen.
clip_image044

6)    Hostname des ersten Knoten so angeben, wie er bei der Eingabe von hostname ermittelt wird. Als IP-Adresse die Adresse des Interconnects angeben. Den Port wie vorgegeben belassen und mit OK bestätigen.
(Daten in der Abbildung nur beispielhaft)
clip_image046
Das gleiche für den zweiten Knoten wiederholen.

7)    In der “Node Configuration” Anwenden wählen.
(Daten in der Abbildung nur beispielhaft)
clip_image048

8)    Die “Node Configuration” schließen.
clip_image050

9)    Über das Konsolenmenü mit <Cluster/Propagate Configuration…> die Konfiguration auf die Knoten verteilen.
clip_image052

10)  Im aufpoppenden Shell-Fenster die Abfrage mit yes beantworten und das Passwort für den root User angeben. Nach Abschluss das Fenster schließen.
clip_image054

11)  Über das Konsolenmenü mit <Tasks/Format…> den Dialog zum Formatieren des OCFS2 Device aufrufen.
clip_image056

12)  Als „Volume label“ ocfs eingeben, alle übrigen Werte wie vorgegeben belassen und mit OK bestätigen.
clip_image058

13)  Die Nachfrage mit ja beantworten.
clip_image060

14)  Das formatierte Device nun mit Mount mounten.
clip_image062

15)  In der Dialogbox den Mountpoint /u02 und die Mountoptionen datavolume,nointr angeben und mit OK bestätigen. Das Device wird damit auf beiden Knoten gemounted.
clip_image064

16)  Die OCFS2 Konsole beenden, z.B. über das Konsolenmenü mit <File/Quit>.

17)  Datei /etc/fstab ergänzen
vi /etc/fstab
Zeile ergänzen:
/dev/sde1   /u02  ocfs2 _netdev,datavolume,nointr     0 0

18)  Die Cluster Timeouts für das OCFS2 müssen auf allen Knoten angepasst werden. Dazu den Service auf beiden Knoten unter root konfigurieren mit:
service o2cb configure
und die Punkte folgendermaßen beantworten:

Load O2CB driver on boot:          y
Cluster to start on boot:          ocfs2
Specify heartbeat dead threshold:  31
Use user-space driven heartbeat?:  n
Cluster keepalive delay (ms):      2000
Cluster reconnect dealy (ms):      2000
Cluster idle timeout (ms):         30000
Writing O2CB configuration:        OK

Ausgabe:
[root@vmrac1 ~]# service o2cb configure
Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
<ENTER> without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [7]: 31
Use user-space driven heartbeat? (y/n) [n]:
Cluster keepalive delay (ms) [5000]: 2000
Cluster reconnect dealy (ms) [2000]:
Cluster idle timeout (ms) [10000]: 30000
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
[root@vmrac1 ~]#