21 Jan 2015

Inhalt

Einfuehrung

In diesem Dokument wird der vollstaendige Prozess zum Aufbau einer Oracle Grid Infrastrucure (GI) Testumgebung beschrieben. Es beginnt mit der Erstellung der VMs, ueber die Installation der Software bis hin zu einigen Beispielen von Cluster Commands. Es wird alles installiert und konfiguriert, was notwendig ist, um auf dem Server Oracle GI zu installieren. Resultat der Installation ist ein GoldImage, das zum Erstellen von virtuelle Oracle DB Server genutzt werden kann.

Konventionen

  • Hinweise, die unbedingt beachtet werden muessen.
ALARM
  • Hinweise, die beachtet werden sollten, um Probleme zu vermeiden.
WARNUNG
  • Hinweise mit nuetzlichen Zusatzinformationen.
INFO
  • Ausfuehrung von Commands, die Anweisungen sind hervorgehoben .
 
mbp02:~ hed$ ssh -Y root@oel60
The authenticity of host 'oel60 (192.168.57.201)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel60' (RSA) to the list of known hosts.
root@oel60's password:
/usr/bin/xauth:  creating new authority file /root/.Xauthority
[root@oel60 ~]#
  • Script oder Text, der 1:1 per copy/paste kopiert werden kann.
# accounts anlegen
useradd oracle -c "Oracle SW Owner" -u 1001 -g oinstall -G dba,oper,asmdba
useradd grid   -c "Oracle Grid SW Owner" -u 1002 -g oinstall -G dba,oper,asmdba,asmadmin,asmoper

top

Voraussetzungen

  • Oracle VirtualBox ist installiert
  • Es sind zwei Host-only Netzwerke konfiguriert
    • vboxnet1/192.168.57.0
    • vboxnet2/192.168.58.0
  • ISO Image fuer die Oracle Enterprise Linux Installation ist lokal verfuegbar. Das Image kann von Oracle e-delivery heruntergeladen werden.
  • Oracle SW fuer die Installation ist lokal auf dem Host verfuegbar.
  • Database Management Kit (dmk) von dbi services

Die Architektur der GI Testumgebung stellt sich wie folgt dar.

cluster-pic1 cluster-pic1

Zur Vorbereitung und zum Erstellen eines “GoldImages” wird eine Master VM erstellt. Diese VM spielt in der spaeteren GI Testumgebung keine Rolle.

192.168.57.201  oel60.dammeyer.local             oel60
192.168.58.201  oel60-priv.dammeyer.local        oel60-priv

In der GI Umgebung werden fuer die zwei VMs neun IP Addressen benoetigt. Diese sollten entweder ueber DNS aufgeloest werden koennen oder in die lokalen /etc/hosts der Server eingetragen werden.

192.168.57.11   oel61.dammeyer.local             oel61
192.168.58.11   oel61-priv.dammeyer.local        oel61-priv

192.168.57.12   oel62.dammeyer.local             oel62
192.168.58.12   oel62-priv.dammeyer.local        oel62-priv

192.168.57.21   oel61-vip.dammeyer.local         oel61-vip
192.168.57.22   oel62-vip.dammeyer.local         oel62-vip

192.168.57.13  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan
192.168.57.14  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan
192.168.57.15  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan

top

Installation Oracle Enterprise Linux 6.x

Zum Testen von Oracle Datenbanken bzw Oracle Grid Infrastructure wird ein virtueller Oracle Enterprise Linux Server aufgesetzt. Fuer die Virtualisierung wird Oracle Virtual Box verwendet. Ziel der Installation ist ein Kopie der virtuellen Disk, die spaeter als GoldImage zum Erstellen von Oracle DB Servern genutzt werden kann.

top

Grundinstallation

Es wird eine VM mit folgenden Attributen konfiguriert:

  • 6 GB RAM
  • 4 CPU Cores
  • 3 Netzwerkkarten
  • 50GB Disk

top

Die VM ueber das GUI erstellen

Die virtuelle Maschine kann ueber das GUI oder auf der Commandline erstellt werden.

Zum Schluss soll die VM wie folgt aufgesetzt sein:

vm-bild1 vm-bild1

Als erstes wird ein Name vergeben und das OS angegeben.

vm-bild2 vm-bild2

Die VM sollte ueber mindestens 4 GB RAM verfuegen, besser mehr.

vm-bild3 vm-bild3

Die Platte wird direkt beim Erstellen der VM angelegt.

vm-bild4 vm-bild4

Fuer die virtuelle Disk wird der Type VDI ausgewaehlt. Das hat zum Beispiel den Vorteil, dass ihre Groesse spaeter per modifyhd angepasst werden kann.

vm-bild5 vm-bild5

Um keinen unnoetigen Platz auf dem Host zu verschwenden soll der Diskspace dynamisch alloziert werden.

vm-bild6 vm-bild6

Die HardDisk muss ausreichend gross dimensioniert werden, damit genuegend Platz fuer die Oracle SW verfuegbar ist.

Die Disk muss groesser als 24G werden koennen, ansonsten gibt es Probleme beim Installieren der SW!
50G sollten fuer die Installation ausreichen.

vm-bild7 vm-bild7

Nach dem <Create> wird die VM erstellt und sieht wie folgt aus:

vm-bild8 vm-bild8

Es muessen noch weitere Optionen konfiguriert werden. Die ersten zwei Netzwerkadapter werden mit je einem Host-only Netzwerk verbunden.

  • vboxnet1 = public (eth0)
  • vboxnet2 = private (eth1)

vm-bild9 vm-bild9

vm-bild10 vm-bild10

Der dritte Netzwerkadapter (eth2) wird mit einem Host Adapter verbunden, damit hierueber das OS aktualisiert werden kann:

vm-bild11 vm-bild11

Das ISO Image der Oracle Enterprise Linux SW wird dem DVD Laufwerk zugeordnet:

vm-bild12 vm-bild12

Damit beim Start der VM ueber die DVD gebootet wird, muss die Boot Sequenz mit der DVD beginnen:

vm-bild13 vm-bild13

Der VM vier CPUs zuweisen:

vm-bild14 vm-bild14

Die VM verfuegt ueber genuegend Ressourcen um sie als Server in einem Oracle Grid Infrastructure Cluster einzusetzen.

vm-bild15 vm-bild15

top

Die VM per Shellscript anlegen

Alternativ kann die VM auch auf der Commandline bzw. per Script erstellt werden. Hier als Beispiel ein Bash Script.

Das Script muss fuer den Zielhost angepasst werden. Neben den Speicherorten der VMs und der Linux DVD muss auch der dritte Netzwerkadapter angepasst werden.

#!/bin/bash
#
VMNAME="oel60"
VMDIR='/Users/hed/VirtualBox VMs'
OEL6DVD='/u01/sw/linux/oel66/V52218-01.iso'
VMDESC="Oracle Enterprise Linux 6 -- $(date)"
#

mkdir -vp "${VMDIR}/${VMNAME}"
vboxmanage createvm --name $VMNAME --register
vboxmanage modifyvm $VMNAME --cpus 4 --memory 6144 --acpi on --ioapic on --boot1 dvd
vboxmanage modifyvm $VMNAME --nic1 hostonly --hostonlyadapter1 vboxnet1 --nictype1 82540EM
vboxmanage modifyvm $VMNAME --nic2 hostonly --hostonlyadapter2 vboxnet2 --nictype2 82540EM
vboxmanage modifyvm $VMNAME --nic3 bridged --bridgeadapter3 'en0: Wi-Fi (AirPort)' --nictype3 82540EM
vboxmanage modifyvm $VMNAME --macaddress1 auto --macaddress2 auto --macaddress3 auto
vboxmanage modifyvm $VMNAME --ostype Oracle_64 --description "${VMDESC}"
#
vboxmanage storagectl $VMNAME --name "IDE" --add ide --controller PIIX4 --portcount 2
vboxmanage storageattach $VMNAME --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium "$OEL6DVD"
# 
if [ -f "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi" ] 
then
  echo "File existiert:"
  echo "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
else
  vboxmanage createhd --filename "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi" \
    --format vdi --sizebyte 51539607552
fi
vboxmanage storagectl $VMNAME --name "SATA" --add sata --controller IntelAHCI --portcount 8
vboxmanage storageattach $VMNAME --storagectl "SATA" --port 1 \
        --device 0 --type hdd --medium "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"

top

VM starten und OEL installieren

Nachdem die VM erstellt ist, beginnen wir mit der Installation vom Linux . Dazu weisen wir dem DVD Laufwerk das ISO Image zu und starten anschliessend die VM.

Auf dem Welcome Screen waehlen wir die Option zum Installieren auf einem bestehenden System.

oel-bild1 oel-bild1

Die VM startet …

oel-bild2 oel-bild2

Ein Mediatest kann in der Regel uebersprungen werden.

oel-bild4 oel-bild4

Oracle Linux Version 6 wird installiert.

oel-bild5 oel-bild5

Hier das richtige Keyboard auswaehlen. Layout und Model werden spaeter noch einmal angepasst.

oel-bild6 oel-bild6

Fuer die Linux Installation reichen Basic Storage Devices aus.

oel-bild7 oel-bild7

Bestaetigen, dass eventuell vorhandenen Daten geloescht werden duerfen.

oel-bild8 oel-bild8

Hier den Full Qualified Hostname angeben: oel60.dammeyer.local

oel-bild10 oel-bild10

Zeitzone setzen

oel-bild11 oel-bild11

Bestaetigen, dass das schwache Passwort verwendet werden soll.

oel-bild13 oel-bild13

Die virtuelle Disk ist leer. Also entweder ‘Use all Space’ oder ‘Replace Exiting …’ .

oel-bild14 oel-bild14

Bestaetigen, dass die Partitions erstellt werden sollen.

oel-bild15 oel-bild15

Die aufgefuehrten Packages sind nicht zwingend erforderlich, erleichtern jedoch die Installation in einer Testumgebung. In einer Produktionsumgebung sind in der Regel sehr viel weniger Packages auf einem DB Server verfuegbar.

Jetzt werden die Packages ausgewaehlt.

  • Base System > Base
  • Base System > Compatibility libraries
  • Base System > Hardware monitoring utilities
  • Base System > Large Systems Performance
  • Base System > Network file system client
  • Base System > Performance Tools
  • Base System > Perl Support
  • Servers > Server Platform
  • Servers > System administration tools
  • Desktops > Desktop
  • Desktops > Desktop Platform
  • Desktops > Fonts
  • Desktops > General Purpose Desktop
  • Desktops > Graphical Administration Tools
  • Desktops > Input Methods
  • Desktops > X Window System
  • Applications > Internet Browser
  • Development > Additional Development
  • Development > Development Tools

Die Packages jetzt anpassen. Es besteht auch die Moeglichkeit, die Packages zu einem spaeteren Zeitpunkt per yum zu installieren.

oel-bild16 oel-bild16

oel-bild17 oel-bild17

Nachdem die Packages ausgwaehlt sind, beginnt die Installation …

oel-bild18 oel-bild18

oel-bild20 oel-bild20

Die Installation ist abgeschlossen, nach einem Reboot beginnt die Systemkonfiguration.

oel-bild21 oel-bild21

Die Konfiguration beginnt.

oel-bild22 oel-bild22

Der Lizenzvereinbarung zustimmen.

oel-bild23 oel-bild23

Eine Verbindung zum Oracle Unbreakable Linux Network wird fuer die Testinstallation nicht gebraucht.

oel-bild24 oel-bild24

oel-bild25 oel-bild25

Entgegen dieser Warnung, kann Oracle Enterprise Linux spaeter aktualisiert werden.

oel-bild26 oel-bild26

Ein Account muss eingerichtet werden.

oel-bild27 oel-bild27

Falls ein zu schwaches Passwort verwendet wird, braucht es eine weitere Bestaetigung.

oel-bild28 oel-bild28

Datum und Uhrzeit fuer das System setzen. NTP ist hier abgewaehlt, was in einer produktiven Umgebung ein NoGo ist.

oel-bild29 oel-bild29

Das Memory fuer Kdump koennen wir in der Testumgebung sparen.

oel-bild30 oel-bild30

oel-bild31 oel-bild31

oel-bild32 oel-bild32

Die Installation und Konfiguration ist nun abgeschlossen und man kann sich auf dem Server anmelden.

oel-bild33 oel-bild33

top

Abschliessende Konfiguration nach Installationsende

Damit von aussen mit einem Terminal (putty, iTerm, …) auf die VM zugegriffen werden kann, muessen noch folgende Punkte bearbeitet werden:

  • Keyboard Layout
  • Netzwerk

Das Keyboard Layout wird ueber System>Preferences>Keyboard angepasst.

oel-bild34 oel-bild34

Neben dem Layout muss auch das Keyboard Model ausgwaehlt werden.

oel-bild35 oel-bild35

Das Interface eth0 ist mit dem Host-only Netzwerk vboxnet1 verbunden, also kann eine Addresse aus dem Netz 192.168.57.0/24 zugewiesen werden.

Es muss genau darauf geachtet werden, dass die Netzwerk Interfaces (eth0,eth1,eth2) mit dem richtigen Netz verbunden sind. Die Zuordnung erfolgt ueber die MAC Adresse in den udev Rules.
/etc/udev/rules.d/70-persistent-net.rules
Nicht vergessen, die IP Adressen in die lokale /etc/hosts des Host Rechners einzutragen.

oel-bild36 oel-bild36

Wenn das Netzwerk korrekt eingerichtet ist, kann vom Host aus mit einem Terminal auf die VM zugregriffen werden.

 
mbp02:~ hed$ ssh -Y root@oel60
The authenticity of host 'oel60 (192.168.57.201)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel60' (RSA) to the list of known hosts.
root@oel60's password:
/usr/bin/xauth:  creating new authority file /root/.Xauthority
[root@oel60 ~]#

top

OEL Packages per yum installieren

Fuer den Fall, dass die Packages nicht bei der Installation ausgewaehlt wurden, koennen sie jetzt mit yum nachtraeglich installiert werden.

#!/bin/bash
#
yum -y groupinstall 'Base'
yum -y groupinstall 'Compatibility libraries'
yum -y groupinstall 'Hardware monitoring utilities'
yum -y groupinstall 'Large Systems Performance'
yum -y groupinstall 'Network file system client'
yum -y groupinstall 'Performance Tools'
yum -y groupinstall 'Perl Support'
yum -y groupinstall 'Server Platform'
yum -y groupinstall 'System administration tools'
yum -y groupinstall 'Desktop'
yum -y groupinstall 'Desktop Platform'
yum -y groupinstall 'Fonts'
yum -y groupinstall 'General Purpose Desktop'
yum -y groupinstall 'Graphical Administration Tools'
yum -y groupinstall 'Input Methods'
yum -y groupinstall 'X Window System'
yum -y groupinstall 'Internet Browser'
yum -y groupinstall 'Additional Development'
yum -y groupinstall 'Development Tools'

Die Installation vom Oracle Enterprise Linux ist soweit abgeschlossen, jetzt kann die VM fuer die Installation der Oracle Software vorbereitet werden.

top

Vorbereiten zur Installation von Oracle SW

Der Oracle Enterprise Linux 6 Server ist nun fertig installiert und man kann von extern auf ihn zugreifen. Jetzt werden die Oracle spezifischen Anpassungen durchgefuehrt, damit Oracle Anwendungen ohne Probleme installiert und betrieben werden koennen. Eine detailierte Installationsanweisung gibt es in der Oracle Dokumentation.

Damit die Installation funktioniert, braucht die VM eine Verbindung ins Internet. Aus diesem Grund ist der 3. Adapter (eth2) als Bridged konfiguriert.

top

Oracle spezifische Konfigurationen / Grid Infra requirements

OS Requirements for Grid Infrastructur

Die Anforderungen fuer das OS ist im Oracle Grid Infrastructure Guide for Linux dokumentiert.
Es muessen folgende Packages (oder aktuellere Versionen) installiert sein:

binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
libXext-1.1 (x86_64)
libXext-1.1 (i686)
libXtst-1.0.99.2 (x86_64)
libXtst-1.0.99.2 (i686)
libX11-1.3 (x86_64)
libX11-1.3 (i686)
libXau-1.0.5 (x86_64)
libXau-1.0.5 (i686)
libxcb-1.5 (x86_64)
libxcb-1.5 (i686)
libXi-1.3 (x86_64)
libXi-1.3 (i686)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
nfs-utils-1.2.3-15.0.1
  • Libraries, Kernel
  • security, ssh keys
  • user, groups
  • cvu

top

Oracle Pre-Install RPM verwenden

In der Oracle Dokumentation ist detailiert aufgefuehrt welche Kernel Parameter gesetzt werden muessen und welche Libraries gebraucht werden. Fuer Oracle Enterprise Linux 6 gibt es jedoch einen einfacheren Weg die Anforderungen zu erfuellen. Im Oracle Repository wird dazu ein RPM angeboten, dass installiert werden kann.

 
[root@oel60 ~]# yum search preinstall 
Loaded plugins: refresh-packagekit, security
========================================== N/S Matched: preinstall ==========================================
oracle-rdbms-server-11gR2-preinstall.x86_64 : Sets the system for Oracle single instance and Real Application
                                            : Cluster install for Oracle Linux 6
oracle-rdbms-server-12cR1-preinstall.x86_64 : Sets the system for Oracle single instance and Real Application
: Cluster install for Oracle Linux 6

[root@oel60 ~]# yum -y install oracle-rdbms-server-12cR1-preinstall.x86_64 
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-12.el6 will be installed
--> Processing Dependency: libaio-devel for package: oracle-rdbms-server-12cR1-preinstall-1.0-12.el6.x86_64
--> Processing Dependency: ksh for package: oracle-rdbms-server-12cR1-preinstall-1.0-12.el6.x86_64
--> Running transaction check
---> Package ksh.x86_64 0:20120801-21.el6.1 will be installed
---> Package libaio-devel.x86_64 0:0.3.107-10.el6 will be installed
--> Finished Dependency Resolution

...

Installed:
  oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-12.el6

Dependency Installed:
  ksh.x86_64 0:20120801-21.el6.1                     libaio-devel.x86_64 0:0.3.107-10.el6

Complete!
[root@oel60 ~]#

Nach der Installation sind die Voraussetzungen zur Installation der Oracle SW erfuellt. Jetzt folgen weitere Anpassungen, die die Installation vereinfachen.

Bitte auch die Oracle Best Practices von dbi services beruecksichtigen.

top

Kernel Parameter

Wird nicht das Oracle RPM verwendet, muessen die kernel Parameter in /etc/sysctl.conf gesetzt werden.

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 256 32000 100 142
fs.file-max = 6815744
kernel.msgmni = 2878
kernel.msgmax = 65536
kernel.msgmnb = 65535
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

Und anschliessend aktiviert werden.

[root@oel60 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmall = 4294967296
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
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
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
[root@oel60 ~]#

top

Deadline I/O Scheduler konfigurieren

In einer Datenbank Umgebung ist der Deadline I/O Scheduler dem CFQ vorzuzuiehen.

Fuer den Unbreakable Enterprise Kernel wird bereits per Default der Deadline I/O Scheduler verwendet.

 
[root@oel60 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@oel60 ~]#

Wird der Red Hat Kernel verwendet, muss der I/O Scheduler in /boot/grub/menu.lst per elevator=deadline gesetzt werden.

 
[root@oel60 ~]# grep -A 1 -B 2 elevator /boot/grub/menu.lst
title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-504.3.3.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=/dev/mapper/vg_oel60-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_oel60/lv_root SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_oel60/lv_swap rd_NO_DM rhgb quiet numa=off transparent_hugepage=never crashkernel=auto elevator=deadline
	initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img
[root@oel60 ~]#

In der Red Hat Dokumentation sind weitere Informationen zum Deadline I/O Scheduler zu finden.

top

IP Tables deaktivieren

Die lokale Firewall deaktivieren, damit die Cluste Knoten ohne Stoerung miteinander kommunizieren koennen.

 
[root@oel60 ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@oel60 ~]# chkconfig iptables off
[root@oel60 ~]# chkconfig iptables --list
iptables       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@oel60 ~]#

top

SE Linux auf disabled setzen

Grundsaetzlich unterstuetzt Oracle seit 11.2.0.3.0 SELinux, sodass man es nicht disabln muss. Wird SE Linux jedoch nicht auf disabled gesetzt, kommt es zu Problemen beim transparent SSH.

 
[root@oel60 ~]# getenforce
Enforcing
[root@oel60 ~]# setenforce disabled
[root@oel60 ~]# getenforce
Permissive
[root@oel60 ~]# # SELINUX in /etc/sysconfig/selinux auf disabled setzen
[root@oel60 ~]# vim /etc/sysconfig/selinux
...
[root@oel60 ~]# 

top

NetworkManager deaktivieren

Ist das Netzwerk auf dem Server konfiguriert, stoert der NetworkManager eher, als dass er nuetzt.

 
[root@oel60 ~]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@oel60 ~]# chkconfig NetworkManager off
[root@oel60 ~]# chkconfig NetworkManager --list
NetworkManager 	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@oel60 ~]#

top

ntp deaktivieren

ntp wird bei der Installation der Grid Infrastruktur geprueft. Wenn der Service nicht sauber konfiguriert ist, kann man ihn auch abschalten.

 
[root@oel60 ~]# service ntpd stop
Shutting down ntpd:                                        [FAILED]
[root@oel60 ~]# chkconfig ntpd off
[root@oel60 ~]# chkconfig ntpd --list
ntpd           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@oel60 ~]# mv /etc/ntp.conf /etc/ntp.conf.orig
[root@oel60 ~]#

top

tmpfs filesystem sizen

Damit eine Instanz mit einer groesseren SGA gestartet werden kann, muss ausreichend Shared Memory verfuegbar sein. Ist zuwenig Shared Memory konfiguriert kann es beim Instanz Startup zu einem ORA-27102 kommen.

 
[root@oel60 ~]# mount -o remount,size=2G /dev/shm ; df -h /dev/shm/
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           2.0G   80K  2.0G   1% /dev/shm
[root@oel60 ~]# # In der /etc/fstab die Groesse angeben
[root@oel60 ~]# grep tmpfs /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults,size=2G        0 0
[root@oel60 ~]#

top

swappiness konfigurieren

Der Datenbank Server muss ueber ausreichend Memory verfuegen, sodass kein Swappen erforderlich sein sollte. Damit der Kernel nur in Ausnahmesituationen swapped, wird vm.swappiness=1 gesetzt. Fuer Releases vor RHEL 6.4 war die Empfehlung swappiness=0 zu setzen. Mit 6.4 gab es Aenderungen beim Swappen, sodass swappiness=1 gesetzt werden soll.

[root@oel60 ~]# cat /proc/sys/vm/swappiness
60
[root@oel60 ~]# cat <<EOF_ >>/etc/sysctl.conf
# On a database we want the SGA to stay in RAM
# rather than filesystem cache. Swappiness should be 1
vm.swappiness=1
EOF_
[root@oel60 ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmall = 4294967296
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
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
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
vm.swappiness = 1
[root@oel60 ~]# cat /proc/sys/vm/swappiness
1
[root@oel60 ~]#

top

PAM Limit setzen

Oracle empfiehlt die aktuelle Linux-PAM Biblithek zu verwenden.

[root@oel60 ~]# yum list installed pam
Loaded plugins: refresh-packagekit, security
Installed Packages
pam.x86_64          1.1.1-20.el6           @anaconda-OracleLinuxServer-201410181705.x86_64/6.6
[root@oel60 ~]# grep limit /etc/pam.d/login
[root@oel60 ~]# cat >> /etc/pam.d/login <<EOF_
session    required     pam_limits.so
EOF_
[root@oel60 ~]# grep limit /etc/pam.d/login
session    required     pam_limits.so

top

ulimit fuer oracle + grid

Fuer die Oracle Accounts werden die Ressource Limits angepasst.

[root@oel60 ~]# cat >> /etc/security/limits.conf << EOF_
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   10240
#
grid              soft    nproc   2047
grid              hard    nproc   16384
grid              soft    nofile  4096
grid              hard    nofile  65536
grid              soft    stack   10240
EOF_
[root@oel60 ~]#

top

Oracle Gruppen und Accounts anlegen

Auf allen Servern muessen die gleichen Gruppen und Accounts verfuegbar sein.

Wenn erforderlich, koennen schon vorhanden Benutzer und Gruppen geloescht werden.

userdel -f -r grid
userdel -f -r oracle
groupdel oinstall
groupdel dba
groupdel asmadmin
groupdel asmdba
groupdel asmoper
groupdel oper
groupdel backupdba
groupdel dgdba
groupdel kmdba

Bevor Benutzer angelegt werden, werden die Gruppen erstellt.

# gruppen anlegen
groupadd oinstall  -g 1000
groupadd dba       -g 1001
groupadd asmadmin  -g 1002
groupadd asmdba    -g 1003
groupadd asmoper   -g 1004
groupadd oper      -g 1005
groupadd backupdba -g 1006
groupadd dgdba     -g 1007
groupadd kmdba     -g 1008
# accounts anlegen
useradd oracle -c "Oracle SW Owner" -u 1001 -g oinstall -G dba,oper,asmdba
useradd grid   -c "Oracle Grid SW Owner" -u 1002 -g oinstall -G dba,oper,asmdba,asmadmin,asmoper

Sind die Benutzer erstellt, wird fuer sie das Passwort gesetzt.

[root@oel60 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@oel60 ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@oel60 ~]#

top

ssh keys fuer oracle und grid erzeugen

Fuer die Installation und den spaeteren Betrieb ist es unbedingt erforderlich, dass die Oracle Accounts transparent auf die Cluster Knoten zugreifen koennen.

Damit Transparent ssh funktioniert darf keine passphrase angeben werden!
[root@oel60 ~]# su - oracle
[oracle@oel60 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Created directory '/home/oracle/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
22:f6:98:c6:a7:16:f4:5f:53:88:1a:f2:24:c3:2c:81 oracle@oel60.dammeyer.com
The key's randomart image is:
+--[ RSA 2048]----+
| .               |
|E .              |
|   +     . .     |
|  . B o . . .    |
|   ooB.oS  .     |
|   o.=+.  o      |
|    =.o. . .     |
|   ..o  .        |
|   ..            |
+-----------------+
[oracle@oel60 ~]$ cd .ssh & & cat id_rsa.pub >> authorized_keys
[oracle@oel60 .ssh]$ chmod 600 authorized_keys
[oracle@oel60 .ssh]$ ll
total 12
-rw-------. 1 oracle oinstall  411 Jan 20 09:23 authorized_keys
-rw-------. 1 oracle oinstall 1675 Jan 20 09:22 id_rsa
-rw-r--r--. 1 oracle oinstall  411 Jan 20 09:22 id_rsa.pub
[oracle@oel60 .ssh]$
[oracle@oel60 .ssh]$ exit
logout
[root@oel60 ~]# su - grid
[grid@oel60 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa):
Created directory '/home/grid/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
9e:01:88:ff:68:ac:52:74:60:5d:e4:7b:50:43:cd:7f grid@oel60.dammeyer.com
The key's randomart image is:
+--[ RSA 2048]----+
|   . oo.+o       |
|  o..o . .o      |
| .... +    .     |
|  ...  +    . E  |
| . .. . S    .   |
|  .. o o o       |
| .  + . o        |
|.  o             |
| ..              |
+-----------------+
[grid@oel60 ~]$ cd .ssh && cat id_rsa.pub >> authorized_keys
[grid@oel60 .ssh]$ chmod 600 authorized_keys
[grid@oel60 .ssh]$ ll
total 12
-rw-------. 1 grid oinstall  409 Jan 20 09:25 authorized_keys
-rw-------. 1 grid oinstall 1675 Jan 20 09:25 id_rsa
-rw-r--r--. 1 grid oinstall  409 Jan 20 09:25 id_rsa.pub
[grid@oel60 .ssh]$ exit
logout
[root@oel60 ~]#

top

Verzeichnisse fuer Oracle/Grid Base und Home anlegen

Bei der Installation von Oracle Grid Infrastructure sind Besonderheiten fuer das Grid Home und Grid Base Verzeichnis zu beruecksichtigen. Zum Einen solle ein dedizierte Account (grid) fuer die Installation verwendet werden, zum Anderen darf das Grid Home nicht unterhalb von einem Base Verzeichnis liegen. Details dazu sind im Oracle Grid Infrastructure Installation Guide zu finden.

  • OwnerGrid Infrastructure: grid
  • Base Directory Grid Infrastructure: /u00/app/grid
  • Home Directory Grid Infrastructure: /u00/12.1.0/grid_1_0

  • Oracle SW Owner: oracle
  • Oracle Base Directory : /u00/app/oracle
  • Oracle Home Directory : /u00/app/oracle/product/12.1.0/db_1_0
Bei einer Installation von Oracle Grid Infrastructure for Standalone Server (Oracle Restart) kann fuer GI und RDBMS ein Software Owner verwendet werden. In diesem Fall ist es auch in Ordnung, wenn das Grid Home unterhalb vom Oracle Base liegt. Bsp: /u00/app/oracle/product/12.1.0/grid_1_0
Bewährte Standards zur Installation findest Du in den Oracle Best Practices von dbi services .
Und auch in der Oracle Dokumentation Oracle Grid Infrastructure for a Standalone Server gibt es nützliche Hinweise.
mkdir -p /u00/12.1.0/grid_1_0  # Grid Home
mkdir -p /u00/app/grid         # Grid Base
mkdir -p /u00/app/oracle       # Oracle Base
mkdir -p /u00/app/oracleInventory
chown  root:oinstall /u00 /u00/app
chmod  775 /u00 /u00/app
chown -R grid:oinstall /u00/12.1.0 /u00/app/grid
chown -R oracle:oinstall /u00/app/oracle /u00/app/oracleInventory
chmod -R 775 /u00/12.1.0 /u00/app/grid /u00/app/oracle /u00/app/oracleInventory
find /u00/app/ -ls | sort | column -t

top

udev rules fuer ASM Disks

Die udev Rules fuer die ASM Disks werden jetzt angelegt. Wenn die ASM Disks spaeter erstellt sind, werden die Rules mit den SCSI IDs aktualisiert.
Mit den Rules werden Permission und Ownership für die ASM Disks gesetzt.

Im Devicename keine Sonderzeichen verwenden, auch kein -
[root@oel60 ~]# cat >>/etc/udev/rules.d/99-oracle-asmdevices.rules <<EOF_
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/\$parent", RESULT=="1ATA_VBOX_HARDDISK_VB2266158c-45e98d04", NAME="asm_disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/\$parent", RESULT=="1ATA_VBOX_HARDDISK_VB502f2469-9ad9b89a", NAME="asm_disk2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/\$parent", RESULT=="1ATA_VBOX_HARDDISK_VB0c8201fb-82c46a2d", NAME="asm_disk3", OWNER="grid", GROUP="asmadmin", MODE="0660"
EOF_
[root@oel60 ~]#
In einer zertifizierten Umgebung kann auch ASMLib eingesetzt werden.

top

README.txt anlegen

Der README.txt soll die Anpassung einer geclonten VM erleichtern.

[root@oel60 ~]# cat >> $HOME/Desktop/README.txt <<EOF_
Wenn dieser Host ein frischer Clone vom oel60 ist, muessen einige Konfigurationen
angepasst werden.

o Hostname
  vim /etc/sysconfig/network

o Netzwerk
  /etc/hosts
  vim /etc/udev/rules.d/70-persistent-net.rules
  /sbin/udevadm control --reload-rules
  /sbin/start_udev
  ifconfig -a
  Im ifcfg-eth? IPADDR und HWADDR anpassen
  vim /etc/sysconfig/network-scripts/ifcfg-eth0
  vim /etc/sysconfig/network-scripts/ifcfg-eth1
  vim /etc/sysconfig/network-scripts/ifcfg-eth2
  service network restart

o eventuell udev rule fuer ASM Disks
  /etc/udev/rules.d/99-oracle-asmdevices.rules

EOF_
[root@oel60 ~]#

top

Netzwerkkonfiguration ergaenzen

Steht kein DNS zur Verfuegung, werden die IP Addressen in die /etc/hosts eingetragen.

[root@oel60 ~]# cat <<EOF_ >>/etc/hosts
#
192.168.57.201  oel60.dammeyer.local             oel60
192.168.58.201  oel60-priv.dammeyer.local        oel60-priv

192.168.57.11   oel61.dammeyer.local             oel61
192.168.58.11   oel61-priv.dammeyer.local        oel61-priv

192.168.57.12   oel62.dammeyer.local             oel62
192.168.58.12   oel62-priv.dammeyer.local        oel62-priv

192.168.57.21   oel61-vip.dammeyer.local         oel61-vip
192.168.57.22   oel62-vip.dammeyer.local         oel62-vip

192.168.57.13  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan
192.168.57.14  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan
192.168.57.15  oel6-cluster-scan.dammeyer.local  oel6-cluster-scan
EOF_
[root@oel60 ~]#

Die Interfaces eth0 und eth1 so anpassen, dass die IP Addresse fix zugeordnet sind und die Interfaces beim Booten aktiviert werden.

[root@oel60 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
HWADDR=08:00:27:34:DD:EB
IPADDR=192.168.57.201
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
[root@oel60 ~]# 
[root@oel60 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
HWADDR=08:00:27:FE:9C:C1
IPADDR=192.168.58.201
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
[root@oel60 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
HWADDR=08:00:27:8E:35:80
TYPE=Ethernet
UUID=6dc1e3eb-5f5a-433c-8385-a4e173c63c11
ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp

top

Reboot des fertig konfigurierten Servers

Um die Konfiguration zu checken, wird der Server rebooted.

[root@oel60 ~]# reboot

Broadcast message from root@oel60.dammeyer.com
	(/dev/pts/2) at 9:47 ...

The system is going down for reboot NOW!
[root@oel60 ~]# Connection to oel60 closed by remote host.
Connection to oel60 closed.
mbp02:~ hed$ ssh root@oel60
root@oel60's password:
Last login: Tue Jan 20 08:30:33 2015 from 192.168.57.1
[root@oel60 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 08:00:27:34:DD:EB
          inet addr:192.168.57.201  Bcast:192.168.57.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe34:ddeb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7540 (7.3 KiB)  TX bytes:5997 (5.8 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:FE:9C:C1
          inet addr:192.168.58.201  Bcast:192.168.58.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fefe:9cc1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:593 (593.0 b)  TX bytes:758 (758.0 b)

eth2      Link encap:Ethernet  HWaddr 08:00:27:8E:35:80
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

[root@oel60 ~]# ifup eth2

Determining IP information for eth2... done.
[root@oel60 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
[root@oel60 ~]# ifconfig eth2
eth2      Link encap:Ethernet  HWaddr 08:00:27:8E:35:80
          inet addr:192.168.1.58  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe8e:3580/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:477 errors:0 dropped:26 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:42433 (41.4 KiB)  TX bytes:1272 (1.2 KiB)

[root@oel60 ~]#

Die Netzwerkkonfiguration ist in Ordnung.

top

Update vom Oracle Enterprise Linux

Bevor die Oracle Virtual Box Additions installiert werden, wird das OS auf einen aktuellen Stand gebracht.

[root@oel60 ~]# yum update
Loaded plugins: refresh-packagekit, security
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package at.x86_64 0:3.1.10-43.el6_2.1 will be updated
---> Package at.x86_64 0:3.1.10-44.el6_6.2 will be an update
---> Package autofs.x86_64 1:5.0.5-109.0.1.el6 will be updated
---> Package autofs.x86_64 1:5.0.5-109.0.1.el6_6.1 will be an update
---> Package bash.x86_64 0:4.1.2-29.el6 will be updated
---> Package bash.x86_64 0:4.1.2-29.el6.0.1 will be an update

...

 wget                            x86_64    1.12-5.el6_6.1                   public_ol6_latest          483 k
 wpa_supplicant                  x86_64    1:0.7.3-4.el6_3                  public_ol6_latest          365 k
 xorg-x11-server-Xorg            x86_64    1.15.0-25.el6_6                  public_ol6_latest          1.3 M
 xorg-x11-server-common          x86_64    1.15.0-25.el6_6                  public_ol6_latest           49 k
 yum-rhn-plugin                  noarch    0.9.1-52.0.1.el6_6               public_ol6_latest           81 k

Transaction Summary
=============================================================================================================
Install       5 Package(s)
Upgrade     153 Package(s)

Total download size: 355 M
Is this ok [y/N]: y

...

  tzdata.noarch 0:2014j-1.el6
  tzdata-java.noarch 0:2014j-1.el6
  webkitgtk.x86_64 0:1.4.3-9.el6_6
  wget.x86_64 0:1.12-5.el6_6.1
  wpa_supplicant.x86_64 1:0.7.3-4.el6_3
  xorg-x11-server-Xorg.x86_64 0:1.15.0-25.el6_6
  xorg-x11-server-common.x86_64 0:1.15.0-25.el6_6
  yum-rhn-plugin.noarch 0:0.9.1-52.0.1.el6_6

Complete!
[root@oel60 ~]#

top

Oracle VirtualBox Guest Additions

Die VirtualBox Guest Additions koennen ueber das GUI installiert werden oder auf Command-Line.

Auf dem Host die Guest Additions im DVD Laufwerk einlegen:

mbp02:~ hed$ VMNAME=oel60
mbp02:~ hed$ vboxmanage showvminfo $VMNAME --machinereadable | grep IDEstoragecontrollername0="IDE"
"IDE-0-0"="none"
"IDE-0-1"="none"
"IDE-1-0"="emptydrive"
"IDE-IsEjected"="off"
"IDE-1-1"="none"
mbp02:~ hed$ VBoxManage storageattach $VMNAME --storagectl "IDE" --port 1 --device 0  --type dvddrive --medium /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
mbp02:~ hed$

Jetzt koennen die VirtualBox Erweiterungen fuer Linux auf dem Server installiert werden.

[root@oel60 ~]# mkdir -p /media/cdrom
[root@oel60 ~]# mount /dev/sr0 /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@oel60 ~]# /media/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.20 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [  OK  ]
Building the shared folder support module                  [  OK  ]
Building the OpenGL support module                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]
Installing the Window System drivers
Installing X.Org Server 1.15 modules                       [  OK  ]
Setting up the Window System to use the Guest Additions    [  OK  ]
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[  OK  ]
[root@oel60 ~]#

top

Clonen der HardDisk

Die Installation und Konfiguration des Oracle Servers ist abgeschlossen. Die Disk der VM wird nun geloned, damit sie als GoldImage fuer die Installation weiterer Oracle DB Server verwendet werden kann.

Server stoppen

[root@oel60 ~]# shutdown -h now

Broadcast message from root@oel60.dammeyer.com
	(/dev/pts/0) at 11:00 ...

The system is going down for halt NOW!
[root@oel60 ~]# Connection to oel60 closed by remote host.
Connection to oel60 closed.
mbp02:~ hed$

Jetzt kann die HardDisk kopiert werden.

#!/bin/bash 
#
VMNAME="oel60"
VMDIR='/Users/hed/VirtualBox VMs'
SRCDISK="${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
DSTDISK="${VMDIR}/sources/${VMNAME}-disk1.vdi"
ls -lh "$SRCDISK"
mkdir -vp "${VMDIR}/sources"
vboxmanage clonehd "$SRCDISK" "$DSTDISK"
vboxmanage showhdinfo "$DSTDISK"

top

VMs fuer Oracle Grid Infrastructure erstellen

Jetzt werden die zwei Server der GI Testumgebung erstellt und angepasst. Zum Erstellen dieser VMs wird das GoldImage des oel60 Nodes genutzt. Dazu wird ein Clone der virtuellen Disk erzeugt, welcher dann beim Anlegen der neuen VM verwendet wird. Die VMs koennen per GUI erstellt werden oder einfach per Script.

Fuer die dritte Netzwerkkarte muss ein Adapter angegeben werden, der auf dem Host verfuegbar ist!
#!/bin/bash
#
VMNAME="oel61"
VMDIR='/Users/hed/VirtualBox VMs'
DISK00='/Users/hed/VirtualBox VMs/sources/oel60-disk1.vdi'
VMDESC="Oracle Enterprise Linux 6 -- $(date)"
#
mkdir -vp "${VMDIR}/${VMNAME}"
vboxmanage createvm --name $VMNAME --register
vboxmanage modifyvm $VMNAME --cpus 4 --memory 6144 --acpi on --ioapic on --boot1 dvd
vboxmanage modifyvm $VMNAME --nic1 hostonly --hostonlyadapter1 vboxnet1 --nictype1 82545EM
vboxmanage modifyvm $VMNAME --nic2 hostonly --hostonlyadapter2 vboxnet2 --nictype2 82545EM
vboxmanage modifyvm $VMNAME --nic3 bridged --bridgeadapter3 'en0: Wi-Fi (AirPort)' --nictype3 82545EM
vboxmanage modifyvm $VMNAME --macaddress1 auto --macaddress2 auto --macaddress3 auto
vboxmanage modifyvm $VMNAME --ostype Oracle_64 --description "${VMDESC}"
#
vboxmanage storagectl $VMNAME --name "IDE" --add ide --controller PIIX4 --portcount 2
vboxmanage storageattach $VMNAME --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium emptydrive
#
if [ -f "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi" ] 
then
  echo "File existiert:"
  echo "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
else
  vboxmanage clonehd "${DISK00}" "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
fi
vboxmanage storagectl $VMNAME --name "SATA" --add sata --controller IntelAHCI --portcount 8
vboxmanage storageattach $VMNAME --storagectl "SATA" --port 1 \
        --device 0 --type hdd --medium "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"

Das Script fuer die oel62 ist identisch mit dem Script der oel61, bis auf den Namen $VMNAME.

#!/bin/bash
#
VMNAME="oel62"
VMDIR='/Users/hed/VirtualBox VMs'
DISK00='/Users/hed/VirtualBox VMs/sources/oel60-disk1.vdi'
VMDESC="Oracle Enterprise Linux 6 -- $(date)"
#
mkdir -vp "${VMDIR}/${VMNAME}"
vboxmanage createvm --name $VMNAME --register
vboxmanage modifyvm $VMNAME --cpus 4 --memory 6144 --acpi on --ioapic on --boot1 dvd
vboxmanage modifyvm $VMNAME --nic1 hostonly --hostonlyadapter1 vboxnet1 --nictype1 82545EM
vboxmanage modifyvm $VMNAME --nic2 hostonly --hostonlyadapter2 vboxnet2 --nictype2 82545EM
vboxmanage modifyvm $VMNAME --nic3 bridged --bridgeadapter3 'en0: Wi-Fi (AirPort)' --nictype3 82545EM
vboxmanage modifyvm $VMNAME --macaddress1 auto --macaddress2 auto --macaddress3 auto
vboxmanage modifyvm $VMNAME --ostype Oracle_64 --description "${VMDESC}"
#
vboxmanage storagectl $VMNAME --name "IDE" --add ide --controller PIIX4 --portcount 2
vboxmanage storageattach $VMNAME --storagectl "IDE" --port 0 --device 0 --type dvddrive --medium emptydrive
#
if [ -f "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi" ] 
then
  echo "File existiert:"
  echo "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
else
  vboxmanage clonehd "${DISK00}" "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"
fi
vboxmanage storagectl $VMNAME --name "SATA" --add sata --controller IntelAHCI --portcount 8
vboxmanage storageattach $VMNAME --storagectl "SATA" --port 1 \
        --device 0 --type hdd --medium "${VMDIR}/${VMNAME}/${VMNAME}-disk1.vdi"

Nachdem die VMs erstellt sind, muessen die Serverkonfigurationen noch angepasst werden. Ausser dem Hostnamen haben sich auch die MAC Adressen der Netzwerkkarten geaendert.

  • Hostname vim /etc/sysconfig/network
  • Netzwerk
    • udev rules
    • ifcfg-eth0, ifcfg-eth1 und ifcfg-eth2

Der Hostname wird in /etc/sysconfig/network angepasst. Wie die Aenderungen durchgefuehrt werden muessen ist auch in ~root/Desktop/README.txt beschrieben.

[root@oel60 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oel61.dammeyer.local
# oracle-rdbms-server-12cR1-preinstall : Add NOZEROCONF=yes
NOZEROCONF=yes
[root@oel60 ~]#

Im File /etc/udev/rules.d/70-persistent-net.rules erfolgt die Zurordnung einer MAC Adresse zu einem bestimmten eth? Device. Welche MAC Adressen VirtualBox generiert hat sieht man auf dem Host.

mbp02:~ hed$ VMNAME=oel61
mbp02:~ hed$ vboxmanage showvminfo $VMNAME --details | grep connected | grep NIC
NIC 1:           MAC: 080027C090C8, Attachment: Host-only Interface 'vboxnet1', Cable connected: on, Trace: off (file: none), Type: 82545EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 2:           MAC: 0800276F7671, Attachment: Host-only Interface 'vboxnet2', Cable connected: on, Trace: off (file: none), Type: 82545EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 3:           MAC: 080027DEB81E, Attachment: Bridged Interface 'en0: Wi-Fi (AirPort)', Cable connected: on, Trace: off (file: none), Type: 82545EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
mbp02:~ hed$

Ueber die udev Rules wird auf dem Server den MAC Adresse ein eth? Device zugeordnet. Die angepassten udev Rules muessen anschliessend aktiviert werden.

In ifcfg-ethn und in den udev Rules die MAC Adressen klein schreiben!
[root@oel61 ~]# /sbin/udevadm control --reload-rules
[root@oel61 ~]# /sbin/start_udev
Starting udev: udevd[2730]: GOTO 'pulseaudio_check_usb' has no matching label in: '/lib/udev/rules.d/90-pulseaudio.rules'
                                                           [  OK  ]
[root@oel61 ~]#

Die IP Adresse wird ueber die Datei ifcfg-eth? mit der MAC Adresse verknuepft. Dazu muessen in ifcfg-eth0, ifcfg-eth1 HWADDR und IPADDR angepasst werden, in ifcfg-eth2 nur HWADDR. Welche MAC Adresse (HWADDR) im Konfigfile angegeben wird zeigt die ifconfig Anweisung.

[root@oel61 ~]# ifconfig -a | grep eth
eth0      Link encap:Ethernet  HWaddr 08:00:27:C0:90:C8
eth1      Link encap:Ethernet  HWaddr 08:00:27:6F:76:71
eth2      Link encap:Ethernet  HWaddr 08:00:27:DE:B8:1E
[root@oel61 ~]#

Sind die Konfigfiles korrekt, kann der Netzwerk Service neu gestartet werden.

[root@oel61 ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down interface eth2:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.57.11 is already in use for device eth0...
                                                           [  OK  ]
Bringing up interface eth1:  Determining if ip address 192.168.58.11 is already in use for device eth1...
                                                           [  OK  ]
[root@oel61 ~]#

Nun ist es auch moeglich mit einem Terminal (putty, iTerm,…) von Extern auf den Server zuzugreifen.

top

Transparent ssh fuer oracle und grid

Damit Transparent ssh funktioniert, muessen die Verbindungen zwischen den Server einmalig aufgebaut werden. So werden die Server in die known_hosts aufgenommen.

Verbindungen:
oel61 – ssh –> oel61
oel61 – ssh –> oel62
oel62 – ssh –> oel62
oel62 – ssh –> oel61

[root@oel61 ~]# su - oracle
[oracle@oel61 ~]$ ssh oel61
The authenticity of host 'oel61 (192.168.57.11)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel61,192.168.57.11' (RSA) to the list of known hosts.
[oracle@oel61 ~]$ ssh oel62
The authenticity of host 'oel62 (192.168.57.12)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel62,192.168.57.12' (RSA) to the list of known hosts.
[oracle@oel62 ~]$ ssh oel62
The authenticity of host 'oel62 (192.168.57.12)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel62,192.168.57.12' (RSA) to the list of known hosts.
Last login: Tue Jan 20 13:47:13 2015 from oel61.dammeyer.local
[oracle@oel62 ~]$ ssh oel61
The authenticity of host 'oel61 (192.168.57.11)' can't be established.
RSA key fingerprint is 79:54:f5:66:8c:1f:e0:f9:fd:14:96:3a:65:c9:b9:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oel61,192.168.57.11' (RSA) to the list of known hosts.
Last login: Tue Jan 20 13:46:59 2015 from oel61.dammeyer.local
[oracle@oel61 ~]$
Anschliessend das Gleiche mit dem User grid.

Jetzt sind die zwei VMS bereit fuer die Installation und Konfiguration der Grid Infrastructure. Jetzt ist ein guter Zeitpunkt die Disks der VMs zu clonenen, um sie bei Bedarf zum Erstellen neuer VMs zu verwenden.

top

ASM Disks erstellen

Fuer eine Grid Infrastructure Umgebung werden ASM Disks benoetigt, die von beiden Hosts beschrieben werden koennen. Die ASM Disks werden auf dem Host erstellt und einer VM zugeordnet. Auf dieser VM werden die Disks dann mit einem Filesystem versehen. Ownership und Permissions werden ueber udev Rules gesetzt.

  • ASM Disk erstellen
mbp02:~ hed$ VMDIR='/Users/hed/VirtualBox VMs'
mbp02:~ hed$ for n in 1 2 3 ; do
  VBoxManage createhd --filename "$VMDIR/san/asm0${n}.vdi" \
    --size 6144 --format VDI --variant Fixed
  VBoxManage modifyhd "$VMDIR/san/asm0${n}.vdi" --type shareable
done
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: c73e971d-d183-4235-a42f-a4770d2d4e14
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 5dcb3d7b-a6da-4a89-affc-06dfb72ef32b
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 1abced04-afd8-44ef-945f-308c2d751550
mbp02:~ hed$
  • ASM Disks dem 1. Server zuordnen
mbp02:~ hed$ for m in 1; do
  for n in 1 2 3 ; do
    p=$(expr ${n} + 2)
    VBoxManage storageattach oel6${m} --storagectl "SATA" --port ${p} \
      --device 0 --type hdd \
      --medium "$VMDIR/san/asm0${n}.vdi" --mtype shareable
  done
done
mbp02:~ hed$
  • Informationen zu den ASM Disks
mbp02:~ hed$ vboxmanage list hdds | grep -A 2 -B 4 -i asm
UUID:           c73e971d-d183-4235-a42f-a4770d2d4e14
Parent UUID:    base
State:          locked read
Type:           shareable
Location:       /Users/hed/VirtualBox VMs/san/asm01.vdi
Storage format: VDI
Capacity:       6144 MBytes
--
--
UUID:           5dcb3d7b-a6da-4a89-affc-06dfb72ef32b
Parent UUID:    base
State:          locked read
Type:           shareable
Location:       /Users/hed/VirtualBox VMs/san/asm02.vdi
Storage format: VDI
Capacity:       6144 MBytes
--
--
UUID:           1abced04-afd8-44ef-945f-308c2d751550
Parent UUID:    base
State:          locked read
Type:           shareable
Location:       /Users/hed/VirtualBox VMs/san/asm03.vdi
Storage format: VDI
Capacity:       6144 MBytes

Jetzt den Server starten und die Filesysteme auf den ASM Disks erstellen.

Im Server sind nun drei neue Disks verfuegbar: sdb, sdc und sdd

[root@oel61 ~]# ls -l /dev/sd?
brw-rw----. 1 root disk 8,  0 Jan 20  2015 /dev/sda
brw-rw----. 1 root disk 8, 16 Jan 20  2015 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jan 20  2015 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jan 20  2015 /dev/sdd
[root@oel61 ~]# for n in b c d; do
  fdisk -l /dev/sd${n}
done

Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdd: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

[root@oel61 ~]#

Mit dem Command fdisk werden auf den drei Disks die Linux Partitionen angelegt.

[root@oel61 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xfe59f6a5.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-783, default 1): 
Last cylinder, +cylinders or +size{K,M,G} (1-783, default 783):
Using default value 783

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@oel61 ~]#

Wenn auf den drei Disks die Partitionen erstellt sind, muss noch das OS ueber die Aenderungen informiert werden.

[root@oel61 ~]# for n in b c d; do
  /sbin/partprobe  /dev/sd${n}
done
[root@oel61 ~]#

Um die udev Rules fuer die ASM Disks anzupassen, benoetigen wir die SCSI IDs der Platten.

[root@oel61 ~]# for n in b c d; do
  ID=$(/sbin/scsi_id -g -u -d /dev/sd${n})
  echo "/dev/sd${n} == $ID"
done
/dev/sdb == 1ATA_VBOX_HARDDISK_VBc73e971d-144e2d0d
/dev/sdc == 1ATA_VBOX_HARDDISK_VB5dcb3d7b-2bf32eb7
/dev/sdd == 1ATA_VBOX_HARDDISK_VB1abced04-5015752d
[root@oel61 ~]#

Im File /etc/udev/rules.d/99-oracle-asmdevices.rules die SCSI IDs anpassen.

[root@oel61 ~]# vim /etc/udev/rules.d/99-oracle-asmdevices.rules 
[root@oel61 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBc73e971d-144e2d0d", NAME="asm_disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB5dcb3d7b-2bf32eb7", NAME="asm_disk2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB1abced04-5015752d", NAME="asm_disk3", OWNER="grid", GROUP="asmadmin", MODE="0660"
[root@oel61 ~]#

Anschliessend die udev Rules aktivieren.

[root@oel61 ~]# /sbin/udevadm control --reload-rules
[root@oel61 ~]# /sbin/start_udev
Starting udev: udevd[2996]: GOTO 'pulseaudio_check_usb' has no matching label in: '/lib/udev/rules.d/90-pulseaudio.rules'
                                                           [  OK  ]
[root@oel61 ~]# ll /dev/asm_disk*
brw-rw----. 1 grid asmadmin 8, 17 Jan 20 14:58 /dev/asm_disk1
brw-rw----. 1 grid asmadmin 8, 33 Jan 20 14:58 /dev/asm_disk2
brw-rw----. 1 grid asmadmin 8, 49 Jan 20 14:58 /dev/asm_disk3
[root@oel61 ~]#

Beide Server stoppen und dann die ASM Disks dem 2. Server zuweisen.

mbp02:~ hed$ # ASM Disks dem 2. Server zuweisen
mbp02:~ hed$ # !! BEIDE Server vorher runterfahren
mbp02:~ hed$ VMDIR='/Users/hed/VirtualBox VMs'
mbp02:~ hed$ for m in 2; do
  for n in 1 2 3 ; do
    p=$(expr ${n} + 2)
    VBoxManage storageattach oel6${m} --storagectl "SATA" --port ${p} \
      --device 0 --type hdd \
      --medium "$VMDIR/san/asm0${n}.vdi" --mtype shareable
  done
done
mbp02:~ hed$

Beide Server starten und die ASM udev Rules von oel61 nach oel62 kopieren.

[root@oel61 ~]# cd /etc/udev/rules.d/
[root@oel61 rules.d]# scp 99-oracle-asmdevices.rules oel62:$PWD
root@oel62's password:
99-oracle-asmdevices.rules                                                                          100%  561     0.6KB/s   00:00
[root@oel61 rules.d]#

Nach einem Reboot des oel62 bzw reload der udev Rules sind die ASM Disks auch auf dem zweiten Server verfuegbar.

[root@oel62 ~]# ll /dev/asm_disk*
brw-rw----. 1 grid asmadmin 8, 17 Jan 20 15:08 /dev/asm_disk1
brw-rw----. 1 grid asmadmin 8, 33 Jan 20 15:08 /dev/asm_disk2
brw-rw----. 1 grid asmadmin 8, 49 Jan 20 15:08 /dev/asm_disk3
[root@oel62 ~]#

top

Oracle Software Installation

Oracle Grid Infrastructure installieren

Die Oracle SW fuer Oracle Grid Infrastructure auf dem Host verfuegbar machen, damit sie auf den virtuellen Server kopiert werden kann. Die SW kann von Oracle Technet heruntergeladen werden.

Auf dem Server als root ein Verzeichnis fuer die Software Installation erstellen und dort hinein die ZIP Files kopieren.

[root@oel61 ~]# mkdir -pv /tmp/swstage && cd /tmp/swstage
mkdir: created directory `/tmp/swstage'
[root@oel61 swstage]#

Jetzt kann vom Host aus die Software auf den Server kopiert werden.

mbp02:12102 hed$ ll
total 12222256
-rw-r--r--@ 1 hed  staff   1.6G Dec 17 14:47 linuxamd64_12102_database_1of2.zip
-rw-r--r--@ 1 hed  staff   968M Dec 17 15:05 linuxamd64_12102_database_2of2.zip
-rw-r--r--@ 1 hed  staff   476M Dec 17 15:19 linuxamd64_12102_examples.zip
-rw-r--r--@ 1 hed  staff   645M Dec 17 15:21 linuxamd64_12102_gateways.zip
-rw-r--r--@ 1 hed  staff   1.6G Dec 17 14:14 linuxamd64_12102_grid_1of2.zip
-rw-r--r--@ 1 hed  staff   617M Dec 17 14:16 linuxamd64_12102_grid_2of2.zip
mbp02:12102 hed$
mbp02:12102 hed$ scp linuxamd64_12102_grid_* root@oel61:/tmp/swstage
root@oel61's password:
linuxamd64_12102_grid_1of2.zip                                          100% 1666MB  52.1MB/s   00:32
linuxamd64_12102_grid_2of2.zip                                          100%  617MB  51.4MB/s   00:12
mbp02:12102 hed$

Zurueck auf dem Server koennen die ZIPs nun ausgepackt werden.

[root@oel61 swstage]# unzip -q linuxamd64_12102_grid_1of2.zip
[root@oel61 swstage]# unzip -q linuxamd64_12102_grid_2of2.zip
[root@oel61 swstage]# rm -fv linuxamd64_12102_grid_*
removed `linuxamd64_12102_grid_1of2.zip'
removed `linuxamd64_12102_grid_2of2.zip'
[root@oel61 swstage]#

Bevor wir mit der eigentlichen Installation beginnen, muss noch das Cluster Verification Utility auf den Server deployed werden.

[root@oel61 swstage]#
[root@oel61 swstage]# rpm -Uvh grid/rpm/cvuqdisk-1.0.9-1.rpm
Preparing...                ########################################### [100%]
Using default group oinstall to install package
   1:cvuqdisk               ########################################### [100%]
[root@oel61 swstage]# ssh oel62 mkdir -vp /tmp/swstage/grid/rpm
root@oel62's password:
mkdir: created directory `/tmp/swstage'
mkdir: created directory `/tmp/swstage/grid'
mkdir: created directory `/tmp/swstage/grid/rpm'
[root@oel61 swstage]# scp grid/rpm/cvuqdisk-1.0.9-1.rpm oel62:/tmp/swstage/grid/rpm
root@oel62's password:
cvuqdisk-1.0.9-1.rpm                                                    100% 8976     8.8KB/s   00:00
[root@oel61 swstage]# ssh oel62 rpm -Uvh /tmp/swstage/grid/rpm/cvuqdisk-1.0.9-1.rpm
root@oel62's password:
Preparing...                ##################################################
Using default group oinstall to install package
cvuqdisk                    ##################################################
[root@oel61 swstage]#

Die Installation erfolgt mit dem User grid und wir benoetigen dafuer X11. Also entweder lokal auf dem Server anmelden oder das Display umlenken.

mbp02:~ hed$ ssh -Y grid@oel61
grid@oel61's password:
Last login: Tue Jan 20 16:34:40 2015 from 192.168.57.1
[grid@oel61 ~]$

Als erstes wird ein Check mit dem Cluster Verification Utility durchgefuehrt. So kann man ueberraschungen waehrend der Installation vorbeugen.

[grid@oel61 grid]$ cd /tmp/swstage/grid
[grid@oel61 grid]$ ./runcluvfy.sh stage -pre crsinst -n oel61,oel62

Performing pre-checks for cluster services setup

Checking node reachability...
Node reachability check passed from node "oel61"


Checking user equivalence...
User equivalence check passed for user "grid"

Checking node connectivity...

Checking hosts config file...

Verification of the hosts config file successful

Node connectivity passed for subnet "192.168.58.0" with node(s) oel61,oel62
TCP connectivity check passed for subnet "192.168.58.0"

Node connectivity passed for subnet "192.168.57.0" with node(s) oel61,oel62
TCP connectivity check passed for subnet "192.168.57.0"


Interfaces found on subnet "192.168.58.0" that are likely candidates for a private interconnect are:
oel61 eth1:192.168.58.11
oel62 eth1:192.168.58.12

Interfaces found on subnet "192.168.57.0" that are likely candidates for a private interconnect are:
oel61 eth0:192.168.57.11
oel62 eth0:192.168.57.12

WARNING:
Could not find a suitable set of interfaces for VIPs
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.58.0".
Subnet mask consistency check passed for subnet "192.168.57.0".
Subnet mask consistency check passed.

Node connectivity check passed

Checking multicast communication...

Checking subnet "192.168.58.0" for multicast communication with multicast group "224.0.0.251"...
Check of subnet "192.168.58.0" for multicast communication with multicast group "224.0.0.251" passed.

Check of multicast communication passed.
Total memory check passed
Available memory check passed
Swap space check failed
Check failed on nodes:
	oel61,oel62
Free disk space check passed for "oel61:/usr,oel61:/var,oel61:/etc,oel61:/sbin,oel61:/tmp"
Free disk space check passed for "oel62:/usr,oel62:/var,oel62:/etc,oel62:/sbin,oel62:/tmp"
Check for multiple users with UID value 1002 passed
User existence check passed for "grid"
Group existence check passed for "oinstall"
Group existence check passed for "dba"
Membership check for user "grid" in group "oinstall" [as Primary] passed
Membership check for user "grid" in group "dba" passed
Run level check passed
Hard limits check passed for "maximum open file descriptors"
Soft limits check passed for "maximum open file descriptors"
Hard limits check passed for "maximum user processes"
Soft limits check passed for "maximum user processes"
System architecture check passed
Kernel version check passed
Kernel parameter check passed for "semmsl"
Kernel parameter check passed for "semmns"
Kernel parameter check passed for "semopm"
Kernel parameter check passed for "semmni"
Kernel parameter check passed for "shmmax"
Kernel parameter check passed for "shmmni"
Kernel parameter check passed for "shmall"
Kernel parameter check passed for "file-max"
Kernel parameter check passed for "ip_local_port_range"
Kernel parameter check passed for "rmem_default"
Kernel parameter check passed for "rmem_max"
Kernel parameter check passed for "wmem_default"
Kernel parameter check passed for "wmem_max"
Kernel parameter check passed for "aio-max-nr"
Kernel parameter check passed for "panic_on_oops"
Package existence check passed for "binutils"
Package existence check passed for "compat-libcap1"
Package existence check passed for "compat-libstdc++-33(x86_64)"
Package existence check passed for "libgcc(x86_64)"
Package existence check passed for "libstdc++(x86_64)"
Package existence check passed for "libstdc++-devel(x86_64)"
Package existence check passed for "sysstat"
Package existence check passed for "gcc"
Package existence check passed for "gcc-c++"
Package existence check passed for "ksh"
Package existence check passed for "make"
Package existence check passed for "glibc(x86_64)"
Package existence check passed for "glibc-devel(x86_64)"
Package existence check passed for "libaio(x86_64)"
Package existence check passed for "libaio-devel(x86_64)"
Package existence check passed for "nfs-utils"

Checking availability of ports "6200,6100" required for component "Oracle Notification Service (ONS)"
Port availability check passed for ports "6200,6100"

Checking availability of ports "42424" required for component "Oracle Cluster Synchronization Services (CSSD)"
Port availability check passed for ports "42424"
Check for multiple users with UID value 0 passed
Current group ID check passed

Starting check for consistency of primary group of root user

Check for consistency of root user's primary group passed

Starting Clock synchronization checks using Network Time Protocol(NTP)...
NTP configuration file "/etc/ntp.conf" existence check passed
No NTP Daemons or Services were found to be running
PRVF-5507 : NTP daemon or service is not running on any node but NTP configuration file exists on the following node(s):
oel61,oel62
Clock synchronization check using Network Time Protocol(NTP) failed

Core file name pattern consistency check passed.

User "grid" is not part of "root" group. Check passed
Default user file creation mask check passed
Checking integrity of file "/etc/resolv.conf" across nodes

"domain" and "search" entries do not coexist in any "/etc/resolv.conf" file
All nodes have same "search" order defined in file "/etc/resolv.conf"
PRVF-5636 : The DNS response time for an unreachable node exceeded "15000" ms on following nodes: oel61,oel62
checking DNS response from all servers in "/etc/resolv.conf"

Check for integrity of file "/etc/resolv.conf" failed

Time zone consistency check passed

Checking integrity of name service switch configuration file "/etc/nsswitch.conf" ...
All nodes have same "hosts" entry defined in file "/etc/nsswitch.conf"
Check for integrity of name service switch configuration file "/etc/nsswitch.conf" passed


Checking daemon "avahi-daemon" is not configured and running
Daemon not configured check passed for process "avahi-daemon"
Daemon not running check passed for process "avahi-daemon"

Starting check for /dev/shm mounted as temporary file system ...

Check for /dev/shm mounted as temporary file system passed

Starting check for /boot mount ...

Check for /boot mount passed

Starting check for zeroconf check ...

Check for zeroconf check passed

Pre-check for cluster services setup was unsuccessful on all the nodes.
[grid@oel61 grid]$

Obwohl in diesem Fall nicht alle Test bestanden wurden, kann mit der Installation fortgefahren werden. Die aufgefuehrten Fehler sind nicht gravierend.

Den Oracle Universal Installer starten

[grid@oel61 grid]$ ./runInstaller -ignoreSysprereqs -ignorePrereq

Je nach Leistungsstaerke des Servers benoetigt die Installation ca 1 Stunde.

Oracel Grid Infrastructure fuer ein Cluster installieren.

grid-pic1 grid-pic1

Fuer die Testumgebung ist ein Standard Cluster ausreichend.

grid-pic2 grid-pic2

Die Advanced Installation waehlen.

grid-pic3 grid-pic3

grid-pic4 grid-pic4

Cluster und SCAN Name angeben. Der Installer prueft, ob die Namen aufgeloest werden koennen.

grid-pic5 grid-pic5

Der zweite Server wird hinzugefuegt.

grid-pic6 grid-pic5

Hier kann geprueft werden, ob die Connectivity zwischen den Servern funktioniert. Dazu angeben, dass existierenden public und private Keys verwendet werden sollen.

grid-pic7 grid-pic7

grid-pic8 grid-pic8

Das Interface eth1 wird auf ‘private’ gesetzt.

grid-pic9 grid-pic9

Die Oracle Cluster Registry wird auf den ASM Storage platziert.

grid-pic10 grid-pic10

Der Discover Path muss angepasst werden, damit die ASM Disks gefunden werden.

grid-pic11 grid-pic11

grid-pic12 grid-pic12

Fuer SYS und SYSTEM kann in der Testumgebung das gleiche Passwort verwendet werden.

grid-pic13 grid-pic13

Ist das Passwort zu simple, muss die Verwendung bestaetigt werden.

grid-pic14 grid-pic14

Das IPMI ist in der Testumgebung nich verfuegbar.

grid-pic15 grid-pic15

Ist Oracle Cloud Control vorhanden, kann Grid Infrastructure registriert werden. Ansonsten kann dieser Schritt uebersprungen werden.

grid-pic16 grid-pic16

OS Gruppen bestimmen, die fuer die Authentisierung verwendet werden sollen.

grid-pic17 grid-pic17

Base und Home fuer die GI Installation angeben, siehe auch Oracle Optimal Flexible Architecture by dbi services .

grid-pic18 grid-pic18

grid-pic19 grid-pic19

Die Configuration Scripts werden automatisch ausgefuehrt, wenn hier das root Password angegeben wird. Werden die Scripte manuell in einem separaten Terminal ausgefuehrt, kann man besser den Fortschritt verfolgen.

grid-pic21 grid-pic21

Zusammenfassung der Installation. Sollen spaeter weitere, aehnliche Installationen durchgefuehrt werden, kann man ein Response File speichern.

grid-pic22 grid-pic22

grid-pic23 grid-pic23

Die Ausfuehrung der Configration Scripts noch einmal bestaetigen.

grid-pic26 grid-pic26

Die Ausfuehrung der Scripte dauert relativ lange, ohne dass ein Fortschritt angezeigt wird, also Geduld haben.

grid-pic28 grid-pic28

Die Ausfuehrung des Cluster Verification Utilities ist aus bekannten Gruenden fehlerhaft.

grid-pic29 grid-pic29

Die Verification skippen und mit der Installation fortfahren.

grid-pic30 grid-pic30

grid-pic31 grid-pic31

Ja, wir sind sicher mit der Installation fortzufahren.

grid-pic32 grid-pic32

Die Installation war erfolgreich.

grid-pic33 grid-pic33

Die Oracle Grid Infrastructure ist im Anschluss an die Installation gestartet und stabil.

[grid@oel61 ~]$ export ORACLE_SID=+ASM1
[grid@oel61 ~]$ . oraenv
ORACLE_SID = [+ASM1] ?
The Oracle base has been set to /u00/app/grid
[grid@oel61 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.asm
               ONLINE  ONLINE       oel61                    Started,STABLE
               ONLINE  ONLINE       oel62                    Started,STABLE
ora.net1.network
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.ons
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       oel62                    STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       oel61                    STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       oel61                    STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       oel61                    169.254.16.197 192.1
                                                             68.58.11,STABLE
ora.cvu
      1        ONLINE  ONLINE       oel61                    STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       oel61                    Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       oel61                    STABLE
ora.oel61.vip
      1        ONLINE  ONLINE       oel61                    STABLE
ora.oel62.vip
      1        ONLINE  ONLINE       oel62                    STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       oel62                    STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       oel61                    STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       oel61                    STABLE
--------------------------------------------------------------------------------
[grid@oel61 ~]$
Die Diskgroups DATA und FRA werden spaeter, vor dem Erstellen der Datenbank, angelegt.

Jetzt kann Oracle RDBMS installiert werden …

top

Oracle RDBMS SW installieren

Auf dem Server eine Staging Bereich bereitstellen.

[root@oel61 ~]# cd /tmp/swstage/
[root@oel61 swstage]# rm -rf *
[root@oel61 swstage]#

Die Software vom Host auf den Server, in die Stageing Area kopieren.

mbp02:12102 hed$ ll
total 12222256
-rw-r--r--@ 1 hed  staff   1.6G Dec 17 14:47 linuxamd64_12102_database_1of2.zip
-rw-r--r--@ 1 hed  staff   968M Dec 17 15:05 linuxamd64_12102_database_2of2.zip
-rw-r--r--@ 1 hed  staff   476M Dec 17 15:19 linuxamd64_12102_examples.zip
-rw-r--r--@ 1 hed  staff   645M Dec 17 15:21 linuxamd64_12102_gateways.zip
-rw-r--r--@ 1 hed  staff   1.6G Dec 17 14:14 linuxamd64_12102_grid_1of2.zip
-rw-r--r--@ 1 hed  staff   617M Dec 17 14:16 linuxamd64_12102_grid_2of2.zip
mbp02:12102 hed$ scp linuxamd64_12102_database_* root@oel61:/tmp/swstage
root@oel61's password:
linuxamd64_12102_database_1of2.zip                                                                                      100% 1596MB  34.7MB/s   00:46
linuxamd64_12102_database_2of2.zip                                                                                      100%  968MB  31.2MB/s   00:31
mbp02:12102 hed$

Auf dem Server die Software entpacken und die ZIPs loeschen.

[root@oel61 swstage]# unzip -q linuxamd64_12102_database_1of2.zip
[root@oel61 swstage]# unzip -q linuxamd64_12102_database_2of2.zip
[root@oel61 swstage]# rm -fv linuxamd64_12102_database_*
removed `linuxamd64_12102_database_1of2.zip'
removed `linuxamd64_12102_database_2of2.zip'
[root@oel61 swstage]#

Mit dem User oracle wird die RDBMS SW installiert

mbp02:~ hed$ ssh -Y oracle@oel61
oracle@oel61's password:
Last login: Tue Jan 20 13:47:41 2015 from oel62.dammeyer.local
/usr/bin/xauth:  creating new authority file /home/oracle/.Xauthority
[oracle@oel61 ~]$ cd /tmp/swstage/database/
[oracle@oel61 database]$
[oracle@oel61 database]$ ./runInstaller -ignoreSysprereqs -ignorePrereq

In der Testumgebung kann auf die Security Updates durch den Oracle Support verzichtet werden.

rdbms-pic1

Keine Email Addresse angeben.

rdbms-pic2

Es wird nur die Sofware installiert, die Datenbank wird spaeter separat mit dem dbca erstellt.

rdbms-pic3

Es wird eine Single Instance Datenbank erstellt.

rdbms-pic4

Hier koennen die gewuenschten Sprachen ausgewaehlt werden.

rdbms-pic5

Aktuell (Jan 2015) ist die Version 12.1.0.2 nur als Enterprise Edition verfuegbar. Man koennte auch eine andere Version installieren und dann die Standard Edition auswaehlen.

rdbms-pic6

Die Pfade fuer ORACLE_BASE und ORACLE_HOME sind gemaess dem Dokument Oracle Optimal Flexible Architecture by dbi services .

rdbms-pic7

Die entsprechenden OS Gruppen fuer die Authentisierung zuordnen.

rdbms-pic8

In der Summary hat man noch einmal die Gelegenheit Anpassungen vorzunehmen und kann die Angaben in einem Response File fuer spaetere Installationen sichern.

rdbms-pic9

Installation …

rdbms-pic10

rdbms-pic11

Zum Abschluss noch root.sh ausfuehren.

rdbms-pic13

Als root das Script ausfuehren.

[root@oel61 ~]# /u00/app/oracle/product/12.1.0/db_1_0/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u00/app/oracle/product/12.1.0/db_1_0

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@oel61 ~]#

Installation erfolgreich abgeschlossen.

rdbms-pic14

Nach der Installation nicht vergessen Ownership und Permissions vom oracle Executeable anzupassen!
Sonst kann im Grid Infrastructure Cluster keine DB gestartet werden.
[root@oel61 ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@oel61 ~]# cd /u00/app/oracle/product/12.1.0/db_1_0/bin/
[root@oel61 bin]# ll oracle
-rwsr-s--x. 1 oracle oinstall 323762222 Jan 20 19:48 oracle
[root@oel61 bin]# chgrp asmadmin oracle; chmod 6751 oracle; ll oracle
-rwsr-s--x. 1 oracle asmadmin 323762222 Jan 20 19:48 oracle
[root@oel61 bin]#

top

dbi services dmk installieren

Das dbi service Database Management Kit (DMK) vereinfacht und standardisiert die DB Administration auf OS Level. Das Package kann über dbi services bezogen werden.

Fuer die Installation des DMK muss Oracle auf dem Server installiert sein. Fuer DMK wird ein Dummy Eintrag in die /etc/oratab eingetragen.

[oracle@oel61 ~]$ grep rdbms /etc/oratab
rdbms1210:/u00/app/oracle/product/12.1.0/db_1_0:D
[oracle@oel61 ~]$

Das DMK wird ins $ORACLE_BASE/local installiert.

mbp02:current hed$ scp dmk-14-03-unix.tar.gz oracle@oel61:/u00/app/oracle/local
oracle@oel61's password:
dmk-14-03-unix.tar.gz                                              100% 5714KB   5.6MB/s   00:00
mbp02:current hed$
[oracle@oel61 local]$ pwd
/u00/app/oracle/local
[oracle@oel61 local]$ gunzip dmk-14-03-unix.tar.gz
[oracle@oel61 local]$ tar xf dmk-14-03-unix.tar
[oracle@oel61 local]$ ls -l
total 8556
drwxr-xr-x. 9 oracle oinstall    4096 Mar  9  2014 dmk
-rw-r--r--. 1 oracle oinstall 8755200 Jan 22 12:21 dmk-14-03-unix.tar
[oracle@oel61 local]$ rm dmk-14-03-unix.tar
[oracle@oel61 local]$

Im File $DMK_HOME/etc/dmk.conf.unix gegebenfalls Anpassungen vornehmen.

Folgende Variablen sollten geprueft werden

  • ORACLE_BASE
  • ORATAB
  • TNS_ADMIN
[oracle@oel61 bin]$ echo $SHELL
/bin/bash
[oracle@oel61 bin]$ . ./dmk.bash
2015-01-22_12:33:40::dmk.bash::-bash                       ::INFO ==> Create the ~/.DMK_HOME file
2015-01-22_12:33:40::dmk.bash::-bash                       ::INFO ==> Create the ~/.DMK_PERL file
oracle@oel61:/u00/app/oracle/local/dmk/bin/ [rdbms1210]

DMK ist installiert und funktioniert

oracle@oel61:/u00/app/oracle/ [rdbms1210] u

Dummy:
------
Dummy           : rdbms1210(12.1.0/db_1_0)

Database(s):
------------
Open/(No)Mount  : +ASM1(grid)
Stopped         : -MGMTDB(grid)

Listener(s):
------------
Started         : LISTENER(grid) LISTENER_SCAN1(grid) LISTENER_SCAN2(grid) LISTENER_SCAN3(grid)
Started         : MGMTLSNR(grid)


oracle@oel61:/u00/app/oracle/ [rdbms1210]

Nachdem DMK auf dem 1. Server verfuegbar ist, koennen weitere Module installiert werden. Es reicht aus, dass die Files im $ORACLE_BASE/local/ entpackt werden und DMK erneut geladen wird.

  • dmk_dbbackup-14-10.tar.gz
  • dmk_ha-14-10.tar.gz
  • dmk_sql-14-10.tar.gz

Um einfach die DMK Umgebung setzen zu koennen, wird in der ~./.bashrc ein alias gesetzt.

oracle@oel61:/home/oracle/ [rdbms1210] grep dmk ~/.bashrc
alias dmk='. /u00/app/oracle/local/dmk/bin/dmk.bash'
oracle@oel61:/home/oracle/ [rdbms1210]
DMK wird von den zwei Accounts oracle und grid verwendet! Damit das funktioniert, muss fuer die Gruppe die korrekten Permissions gesetzt werden.
chmod -R g+rw /u00/app/oracle/local/dmk
chmod -R g+r /u00/app/oracle/product/12.1.0/db_1_0/perl
chmod -R g+rwx /u00/app/oracle/product/12.1.0/db_1_0/perl/bin/perl
chmod -R g+x /u00/app/oracle/product/12.1.0/db_1_0/perl/bin/perl
chmod -R g+w /u00/app/oracle/product/12.1.0/db_1_0/perl/bin/perl
DMK muss ebenfalls auf dem zweiten Server installiert werden. Am Einfachsten geht das mit rsync.
Auch /etc/oratab muss angepasst werden,

Gemaess Oracle Optimal Flexible Architecture by dbi services soll auf einem Server ein zentrales ./network/admin in $ORACLE_BASE gepflegt werden. Damit es zu keinen Problemen kommt, wird in $ORACLE_HOME/network ein symbolic Link erstellt.

oracle@oel61:/home/oracle/ [rdbms1210] cd $ORACLE_HOME/network
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/network/ [rdbms1210] rm -rf admin
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/network/ [rdbms1210] ln -vs /u00/app/oracle/network/admin/
`./admin' -> `/u00/app/oracle/network/admin/'
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/network/ [rdbms1210] ll admin/
total 8
-rw-rw-r--. 1 oracle oinstall 1331 Jan 22 12:36 listener.ora
-rw-r--r--. 1 grid   oinstall  228 Jan 22 12:40 sqlnet.ora
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/network/ [rdbms1210]

top

Oracle DB erstellen

Die Datenbank wird einfach mit dem Database Creation Assistant (dbca) erstellt. Vorher muessen jedoch noch die ASM Diskgroups FRA und DATA angegelegt werden.

top

Die ASM Diskgroups DATA und FRA anlegen

Die Diskgroups werden erst jetzt angelegt, weil jetzt die DMK Umgebung zur Verfuegung steht.

mbp02:~ hed$ ssh grid@oel61
grid@oel61's password:
Last login: Thu Jan 22 14:10:29 2015 from 192.168.57.1
[grid@oel61 ~]$ dmk
grid@oel61:/home/grid/ [rdbms1210] +asm1
********* dbi services Ltd. *********
STATUS                 : STARTED
*************************************
grid@oel61:/home/grid/ [+ASM1] sqh

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jan 22 14:16:13 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> -- welche disks sind verfuegbar?
set pages 9999
set lines 132
column path form a20
column name form a30
select path,name from v$asm_disk order by 1;

PATH		     NAME
-------------------- ------------------------------
/dev/asm_disk1	     CRS_0000
/dev/asm_disk2
/dev/asm_disk3

SQL> CREATE DISKGROUP FRA EXTERNAL REDUNDANCY DISK '/dev/asm_disk2';

Diskgroup created.

SQL> CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK '/dev/asm_disk3';

Diskgroup created.

SQL> select path,name from v$asm_disk order by 1;

PATH		     NAME
-------------------- ------------------------------
/dev/asm_disk1	     CRS_0000
/dev/asm_disk2	     FRA_0000
/dev/asm_disk3	     DATA_0000

SQL>
grid@oel61:/home/grid/ [+ASM1] asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576      6142     1670                0            1670              0             Y  CRS/
MOUNTED  EXTERN  N         512   4096  1048576      6142     6092                0            6092              0             N  DATA/
MOUNTED  EXTERN  N         512   4096  1048576      6142     6092                0            6092              0             N  FRA/
grid@oel61:/home/grid/ [+ASM1]

top

Oracle DB mit dem dbca anlegen

mbp02:~ hed$ ssh -Y oracle@oel61
oracle@oel61's password:
Last login: Thu Jan 22 14:33:18 2015 from 192.168.57.1
[oracle@oel61 ~]$ dmk
oracle@oel61:/home/oracle/ [rdbms1210] dbca

Eine Datenbank erstellen.

db-pic2 db-pic2

Den Advanced Mode waehlen.

db-pic3 db-pic3

Damit es schneller geht, wir General Purpose DB gewaehlt.

db-pic4 db-pic4

Der Datenbank einen Namen geben. Die Datenbank wird nicht als Container DB angelegt.

db-pic5 db-pic5

Oracle EM Database Express kann konfiguriert werden.

db-pic6 db-pic6

In einer Testungebung kann für SYS und SYSTEM das gleiche Passwort verwendet werden.

db-pic7 db-pic7

Die Verwendung simpler Passwoerter muessen bestaetigt werden.

db-pic8 db-pic8

Es muss kein weiterer Listener erstellt werden.

db-pic9 db-pic9

Wenn fuer die Recovery Files ASM als Storage Type ausgewaehlt wird, dann kann hier auch +FRA als Destination genutzt werden.

db-pic11 db-pic11

Laesst man den dbca die Scripte erstellen, kann die DB im Bedarfsfall einfach nochmal erstellt werden.

db-pic12 db-pic12

Mit Finish beginnt dbca die Datenbank zu erstellen.

db-pic13 db-pic14

db-pic14 db-pic14

db-pic16 db-pic16

Abschluss der DB Erstellung.

db-pic17 db-pic17

Datenbank ist Up & Running

oracle@oel61:/home/oracle/ [rdbms1210] orcl1
********* dbi services Ltd. *********
STATUS                 : OPEN
DB_UNIQUE_NAME         : ORCL1
OPEN_MODE              : READ WRITE
LOG_MODE               : NOARCHIVELOG
DATABASE_ROLE          : PRIMARY
FLASHBACK_ON           : NO
FORCE_LOGGING          : NO
VERSION                : 12.1.0.2.0
CDB Enabled            : NO
*************************************
oracle@oel61:/home/oracle/ [ORCL1]

Legt man die DB mit dem dbca an, wird sie automatisch als Ressource dem GI CLuster hinzugefuegt. Wir loeschen diese Ressource, da wir die Datenbank als Failover Ressource verwenden wollen.

Vorher das spfile sichern! Vor dem Start der Instanz muss ausserdem der Eintrag fuer die DB im /etc/oratab wieder hinzugefuegt werden.
root@oel61:/root/ [grid] crsctl status res ora.orcl1.db
NAME=ora.orcl1.db
TYPE=ora.database.type
TARGET=ONLINE
STATE=ONLINE on oel61

root@oel61:/root/ [grid]
root@oel61:/root/ [grid] srvctl stop database -db orcl1 -stopoption IMMEDIATE
root@oel61:/root/ [grid] crsctl status res ora.orcl1.db
NAME=ora.orcl1.db
TYPE=ora.database.type
TARGET=OFFLINE
STATE=OFFLINE

root@oel61:/root/ [grid]
root@oel61:/root/ [grid] srvctl remove database -db orcl1 -verbose
Remove the database orcl1? (y/[n]) y
Successfully removed server pool ORCL1 which is used to manage database orcl1.
Successfully removed database and its dependent services.
root@oel61:/root/ [grid]


top

Setup der DB Failover Resourcen

Damit Datenbanken im Grid Infrastructure Cluster als Failover Ressourcen erkannt werden, muss ein entsprechender Ressourcen Type angelegt werden. Danach muss die Datenbank als Ressource hinzugefuegt werden.

Clustertype in GI anlegen.

Im Falle eines Problems soll die Datenbank automatisch auf den zweiten Knoten verschoben werden. Damit das moeglich ist, muss einmalig ein neuer Ressourcen Type angelegt werden.

  • Eine Datei clu_db.type anlegen
[root@oel60 ~]# cat <<EOF_ >>clu_db.type
ATTRIBUTE=DESCRIPTION
TYPE=STRING
DEFAULT_VALUE='Oracle Database resource'

ATTRIBUTE=CHECK_INTERVAL
TYPE=INT
DEFAULT_VALUE=30
#in seconds

# Controls the database 
ATTRIBUTE=ACTION_SCRIPT
TYPE=STRING
DEFAULT_VALUE=/u00/app/oracle/local/dmk/bin/db_crs.ksh

# does not apply to an active/passive 2 nodes cluster
ATTRIBUTE=ACTIVE_PLACEMENT
TYPE=INT
DEFAULT_VALUE=0

# Defines the owner of a resource 
ATTRIBUTE=ACL
TYPE=STRING
DEFAULT_VALUE='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--'

# Restrict placement to SERVER_POOL and HOSTING_MEMBERS attribute
ATTRIBUTE=PLACEMENT
TYPE=STRING
DEFAULT_VALUE=restricted

# Restores the resource to the same state that it was in when the server stopped
ATTRIBUTE=AUTO_START
TYPE=STRING
DEFAULT_VALUE=restore

# The maximum time (in seconds) in which a start action can run
ATTRIBUTE=START_TIMEOUT
TYPE=INT
DEFAULT_VALUE=600

# The maximum time (in seconds) in which a stop or clean action can run
ATTRIBUTE=STOP_TIMEOUT
TYPE=INT
DEFAULT_VALUE=600

# The number of servers on which a resource can run, simultaneously.
ATTRIBUTE=CARDINALITY
TYPE=STRING
DEFAULT_VALUE=1

# A disabled resource cannot be started but it can be stopped (0 disabled)
ATTRIBUTE=ENABLED
TYPE=INT
DEFAULT_VALUE=1

# The number of times that Oracle Clusterware attempts to restart a resource 
# on the resource's current server before attempting to relocate it.
ATTRIBUTE=RESTART_ATTEMPTS
TYPE=INT
DEFAULT_VALUE=2

# Length of time that a resource must be up before Oracle Clusterware considers the resource to be stable.
#After the UPTIME_THRESHOLD elapses, Oracle Clusterware resets the value for RESTART_COUNT to 0
ATTRIBUTE=UPTIME_THRESHOLD
TYPE=STRING
DEFAULT_VALUE=4h

# The number of failures of a resource detected within a specified FAILURE_INTERVAL for the resource before Oracle Clusterware marks the resource as unavailable and no longer monitors it. 
ATTRIBUTE=FAILURE_THRESHOLD
TYPE=INT
DEFAULT_VALUE=2

# The interval, in seconds, before Oracle Clusterware stops a resource if the resource has exceeded
# the number of failures specified by the FAILURE_THRESHOLD attribute.
ATTRIBUTE=FAILURE_INTERVAL
TYPE=INT
DEFAULT_VALUE=3600
EOF_

Als root wird der Resourcen Type dem Cluster hinzugefuegt.

[root@oel61 ~]# . /u00/app/oracle/local/dmk/bin/dmk.bash
root@oel61:/root/ [grid] crsctl add type clu_db.type -basetype cluster_resource -file clu_db.type
root@oel61:/root/ [grid]
root@oel61:/root/ [grid] crsctl status type clu_db.type
TYPE_NAME=clu_db.type
BASE_TYPE=cluster_resource

root@oel61:/root/ [grid]

top

Datenbank dem GI Cluster als Ressource hinzufuegen

Die Datenbank wird dem Cluster als Ressource bekannt gemacht.

  • Eine Datei cluster_db.res anlegen
[root@oel60 ~]# cat <<EOF_ >>clu_db.res
#Space-delimited, ordered list of cluster server names that can host a resource.
#Required when the value of the PLACEMENT attribute is set to favored or restricted
HOSTING_MEMBERS=oel61 oel62

#Specifies a set of relationships that Oracle Clusterware considers when starting/stopping a resource
# Depencies can be hard weak pullup intermediate exclusion and so on ...
# Specify a hard start dependency for a resource when you want the resource to start only when a particular resource or resource of a particular type starts.
# Specify a weak start dependency for a resource when you want that resource to start despite whether named resources are running, or not. 
# When you specify the pullup start dependency for a resource, then this resource starts because of named resources starting.
START_DEPENDENCIES=hard(ora.DATA.dg,ora.FRA.dg) weak(type:ora.scan_listener.type) pullup(ora.LISTENER.lsnr)
STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg,shutdown:ora.FRA.dg)

#Defines the owner of a resource and the access privileges
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--
EOF_

Die Attribute sind in der Oracle Clusterware Resource Reference dokumentiert.

Ebenfalls als root wird die Datenbank Resource zum Clusterhinzugefuegt.

root@oel61:/root/ [grid] crsctl add resource ORCL1.db -type clu_db.type -file clu_db.res
root@oel61:/root/ [grid] crsctl status res ORCL1.db
NAME=ORCL1.db
TYPE=clu_db.type
TARGET=OFFLINE
STATE=OFFLINE

root@oel61:/root/ [grid]
root@oel61:/root/ [grid] crsctl start res ORCL1.db
CRS-2672: Attempting to start 'ORCL1.db' on 'oel61'
CRS-2676: Start of 'ORCL1.db' on 'oel61' succeeded
root@oel61:/root/ [grid] crsctl status res ORCL1.db
NAME=ORCL1.db
TYPE=clu_db.type
TARGET=ONLINE
STATE=ONLINE on oel61

root@oel61:/root/ [grid]

Damit die DB Instanz auch auf dem zweiten Server gestartet werden kann, wird dort das Server Parameter File benoetigt. Dazu erstellen wir das spfile im ASM und legen im $ORACLE_HOME/dbs ein init.ora File an, das einen Pointer auf das spfile enthaelt.

oracle@oel61:/home/oracle/ [ORCL1] sqlplus  -S / as sysdba <<EOF_
set echo on
PROMPT create pfile='/tmp/pfile.ora' from spfile;
create pfile='/tmp/pfile.ora' from spfile;
PROMPT create spfile='+DATA/${ORACLE_SID^^}/spfile${ORACLE_SID^^}.ora' from pfile='/tmp/pfile.ora';
create spfile='+DATA/${ORACLE_SID^^}/spfile${ORACLE_SID^^}.ora' from pfile='/tmp/pfile.ora';
exit
EOF_
create pfile='/tmp/pfile.ora' from spfile

File created.

create spfile='+DATA/ORCL1/spfileORCL1.ora' from pfile='/tmp/pfile.ora'

File created.

oracle@oel61:/home/oracle/ [ORCL1]
oracle@oel61:/home/oracle/ [ORCL1] cat > $ORACLE_HOME/dbs/init${ORACLE_SID^^}.ora <<EOF_
SPFILE='+DATA/${ORACLE_SID^^}/spfile${ORACLE_SID^^}.ora'
EOF_
oracle@oel61:/home/oracle/ [ORCL1] cat $ORACLE_HOME/dbs/init${ORACLE_SID^^}.ora
SPFILE='+DATA/ORCL1/spfileORCL1.ora'
oracle@oel61:/home/oracle/ [ORCL1]
oracle@oel61:/home/oracle/ [ORCL1] rm -vi $ORACLE_HOME/dbs/spfile${ORACLE_SID^^}.ora
rm: remove regular file `/u00/app/oracle/product/12.1.0/db_1_0/dbs/spfileORCL1.ora'? y
removed `/u00/app/oracle/product/12.1.0/db_1_0/dbs/spfileORCL1.ora'
oracle@oel61:/home/oracle/ [ORCL1]
oracle@oel61:/home/oracle/ [ORCL1] rm -vi $ORACLE_HOME/dbs/orapw${ORACLE_SID}
rm: remove regular file `/u00/app/oracle/product/12.1.0/db_1_0/dbs/orapwORCL1'? y
removed `/u00/app/oracle/product/12.1.0/db_1_0/dbs/orapwORCL1'
oracle@oel61:/home/oracle/ [ORCL1] orapwd file=/u00/app/oracle/admin/${ORACLE_SID}/pfile/orapw${ORACLE_SID}

Enter password for SYS:
oracle@oel61:/home/oracle/ [ORCL1]
oracle@oel61:/home/oracle/ [ORCL1] ln -vs $DMK_ORA_ADMIN/${ORACLE_SID}/pfile/orapw${ORACLE_SID} $ORACLE_HOME/dbs/orapw${ORACLE_SID}
`/u00/app/oracle/product/12.1.0/db_1_0/dbs/orapwORCL1' -> `/u00/app/oracle/admin/ORCL1/pfile/orapwORCL1'
oracle@oel61:/home/oracle/ [ORCL1]
racle@oel61:/home/oracle/ [ORCL1] cdh && cd dbs
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/dbs/ [ORCL1] for D in $( ls init${ORACLE_SID}* orapw${ORACLE_SID}* ) ; do rsync -azvlP $D oel62:$(pwd)/; done
sending incremental file list
initORCL1.ora
          37 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 131 bytes  received 31 bytes  324.00 bytes/sec
total size is 37  speedup is 0.23
sending incremental file list
orapwORCL1 -> /u00/app/oracle/admin/ORCL1/pfile/orapwORCL1

sent 102 bytes  received 15 bytes  234.00 bytes/sec
total size is 44  speedup is 0.38
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/dbs/ [ORCL1]
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/dbs/ [ORCL1] rsync -azvlP $DMK_ORA_ADMIN/${ORACLE_SID}/pfile/* oel62:$DMK_ORA_ADMIN/${ORACLE_SID}/pfile
sending incremental file list
init.ora.022201515170
        1908 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1/2)
orapwORCL1
        7680 100%    7.32MB/s    0:00:00 (xfer#2, to-check=0/2)

sent 970 bytes  received 50 bytes  2040.00 bytes/sec
total size is 9588  speedup is 9.40
oracle@oel61:/u00/app/oracle/product/12.1.0/db_1_0/dbs/ [ORCL1]

Sind die Admin Verzeichnisse auf dem zweiten Server nicht vohanden, koennen sie mit rsync kopiert werden.

oracle@oel61:/home/oracle/ [ORCL1] rsync -azvlP $DMK_ORA_ADMIN/${ORACLE_SID} oel62:$DMK_ORA_ADMIN
Für die DB Instanz ORCL1 muss in der /etc/oratab auf beiden Server ein Eintrag vorhanden sein.

top

Oracle Cluster commands / Failover Beispiele

Als grid

Stop / Start / Status einer Ressource

grid@oel61:/home/grid/ [grid] crsctl stop res ORCL1.db
CRS-2673: Attempting to stop 'ORCL1.db' on 'oel61'
CRS-2677: Stop of 'ORCL1.db' on 'oel61' succeeded
grid@oel61:/home/grid/ [grid] crsctl start res ORCL1.db
CRS-2672: Attempting to start 'ORCL1.db' on 'oel61'
CRS-2676: Start of 'ORCL1.db' on 'oel61' succeeded
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ORCL1.db
      1        ONLINE  ONLINE       oel61                    STABLE
--------------------------------------------------------------------------------

Entfernen einer Ressource

Um zum Beispiel eine Resource zu entfernen wird srvmgrl benutzt.

grid@oel22:/home/grid/ [+ASM] crsctl status res ora.orcl2.db -t 
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl2.db
      1        OFFLINE OFFLINE                               STABLE
--------------------------------------------------------------------------------

grid@oel22:/home/grid/ [+ASM] srvctl remove database -db orcl2 
Remove the database orcl2? (y/[n]) y 
grid@oel22:/home/grid/ [+ASM] crsctl status res ora.orcl2.db -t 
CRS-2613: Could not find resource 'ora.orcl2.db'.
grid@oel22:/home/grid/ [+ASM]

Relocate einer Ressource

grid@oel61:/home/grid/ [grid] crsctl relocate res ORCL1.db
CRS-2673: Attempting to stop 'ORCL1.db' on 'oel61'
CRS-2677: Stop of 'ORCL1.db' on 'oel61' succeeded
CRS-2672: Attempting to start 'ORCL1.db' on 'oel62'
CRS-2676: Start of 'ORCL1.db' on 'oel62' succeeded
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ORCL1.db
      1        ONLINE  ONLINE       oel62                    STABLE
--------------------------------------------------------------------------------
grid@oel61:/home/grid/ [grid]

Status aller Ressourcen

grid@oel61:/home/grid/ [grid] crsctl status res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.DATA.dg
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.FRA.dg
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.asm
               ONLINE  ONLINE       oel61                    Started,STABLE
               ONLINE  ONLINE       oel62                    Started,STABLE
ora.net1.network
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
ora.ons
               ONLINE  ONLINE       oel61                    STABLE
               ONLINE  ONLINE       oel62                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ORCL1.db
      1        ONLINE  ONLINE       oel62                    STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       oel62                    STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       oel61                    STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       oel61                    STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       oel61                    169.254.16.197 192.1
                                                             68.58.11,STABLE
ora.cvu
      1        ONLINE  ONLINE       oel61                    STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       oel61                    Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       oel61                    STABLE
ora.oel61.vip
      1        ONLINE  ONLINE       oel61                    STABLE
ora.oel62.vip
      1        ONLINE  ONLINE       oel62                    STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       oel62                    STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       oel61                    STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       oel61                    STABLE
--------------------------------------------------------------------------------
grid@oel61:/home/grid/ [grid]

Modify Resource Attributes

grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -f | grep START_TIMEOUT
START_TIMEOUT=600
grid@oel61:/home/grid/ [grid] crsctl modify resource ORCL1.db -attr "START_TIMEOUT=900"
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -f | grep START_TIMEOUT
START_TIMEOUT=900
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -f | grep ENABLED
ENABLED=1
grid@oel61:/home/grid/ [grid] crsctl modify resource ORCL1.db -attr "ENABLED=0"
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -f | grep ENABLED
ENABLED=0
grid@oel61:/home/grid/ [grid] crsctl modify resource ORCL1.db -attr "ENABLED=1"
grid@oel61:/home/grid/ [grid] crsctl status res ORCL1.db -f | grep ENABLED
ENABLED=1
grid@oel61:/home/grid/ [grid]

Alle Cluster Knoten pruefen

grid@oel61:/home/grid/ [grid] crsctl check cluster -all
**************************************************************
oel61:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
oel62:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
grid@oel61:/home/grid/ [grid]

Als root

Status CRS pruefen

root@oel61:/root/ [grid] crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
root@oel61:/root/ [grid] crsctl check cluster -all
**************************************************************
oel61:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
oel62:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
root@oel61:/root/ [grid]

Oracle High Availability Services autostart disable/enable auf lokalem Server

root@oel61:/root/ [grid] crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.
root@oel61:/root/ [grid] crsctl enable crs
CRS-4622: Oracle High Availability Services autostart is enabled.
root@oel61:/root/ [grid]

Oracle High Availability Services auf lokalem Server beenden/starten

Die lokalen Ressourcen werden auf den verbleibenden Server verschoben (relocated).

CRS beenden

root@oel61:/root/ [grid] crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'oel61'
CRS-2673: Attempting to stop 'ora.crsd' on 'oel61'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'oel61'
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'oel61'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'oel61'
CRS-2673: Attempting to stop 'ora.mgmtdb' on 'oel61'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'oel61'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'oel61'
CRS-2673: Attempting to stop 'ora.cvu' on 'oel61'
CRS-2673: Attempting to stop 'ora.oc4j' on 'oel61'
CRS-2677: Stop of 'ora.cvu' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.cvu' on 'oel62'
CRS-2676: Start of 'ora.cvu' on 'oel62' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'oel61'
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'oel61'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.oel61.vip' on 'oel61'
CRS-2677: Stop of 'ora.FRA.dg' on 'oel61' succeeded
CRS-2677: Stop of 'ora.scan2.vip' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.scan2.vip' on 'oel62'
CRS-2677: Stop of 'ora.scan3.vip' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.scan3.vip' on 'oel62'
CRS-2677: Stop of 'ora.mgmtdb' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.MGMTLSNR' on 'oel61'
CRS-2677: Stop of 'ora.MGMTLSNR' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.MGMTLSNR' on 'oel62'
CRS-2677: Stop of 'ora.oel61.vip' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.oel61.vip' on 'oel62'
CRS-2676: Start of 'ora.scan2.vip' on 'oel62' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on 'oel62'
CRS-2676: Start of 'ora.scan3.vip' on 'oel62' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN3.lsnr' on 'oel62'
CRS-2677: Stop of 'ora.oc4j' on 'oel61' succeeded
CRS-2672: Attempting to start 'ora.oc4j' on 'oel62'
CRS-2676: Start of 'ora.oel61.vip' on 'oel62' succeeded
CRS-2676: Start of 'ora.MGMTLSNR' on 'oel62' succeeded
CRS-2672: Attempting to start 'ora.mgmtdb' on 'oel62'
CRS-2676: Start of 'ora.LISTENER_SCAN2.lsnr' on 'oel62' succeeded
CRS-2676: Start of 'ora.LISTENER_SCAN3.lsnr' on 'oel62' succeeded
CRS-2676: Start of 'ora.oc4j' on 'oel62' succeeded
CRS-2676: Start of 'ora.mgmtdb' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.CRS.dg' on 'oel61'
CRS-2677: Stop of 'ora.CRS.dg' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'oel61'
CRS-2677: Stop of 'ora.DATA.dg' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel61'
CRS-2677: Stop of 'ora.asm' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'oel61'
CRS-2677: Stop of 'ora.ons' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'oel61'
CRS-2677: Stop of 'ora.net1.network' on 'oel61' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'oel61' has completed
CRS-2677: Stop of 'ora.crsd' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'oel61'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'oel61'
CRS-2673: Attempting to stop 'ora.ctssd' on 'oel61'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'oel61'
CRS-2673: Attempting to stop 'ora.gpnpd' on 'oel61'
CRS-2677: Stop of 'ora.drivers.acfs' on 'oel61' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'oel61' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'oel61' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'oel61' succeeded
CRS-2677: Stop of 'ora.evmd' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.storage' on 'oel61'
CRS-2677: Stop of 'ora.storage' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel61'
CRS-2677: Stop of 'ora.asm' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'oel61'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'oel61'
CRS-2677: Stop of 'ora.cssd' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.crf' on 'oel61'
CRS-2677: Stop of 'ora.crf' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'oel61'
CRS-2677: Stop of 'ora.gipcd' on 'oel61' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'oel61' has completed
CRS-4133: Oracle High Availability Services has been stopped.
root@oel61:/root/ [grid]

CRS starten

root@oel61:/root/ [grid] crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
root@oel61:/root/ [grid]

Nach kurzer Zeit sind die Services wieder online

root@oel61:/root/ [grid] crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
root@oel61:/root/ [grid]
root@oel61:/root/ [grid] crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
root@oel61:/root/ [grid]

Gesamtes Cluster beenden

root@oel61:/root/ [grid] crsctl stop cluster -all
CRS-2673: Attempting to stop 'ora.crsd' on 'oel61'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'oel61'
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'oel61'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'oel61'
CRS-2673: Attempting to stop 'ora.CRS.dg' on 'oel61'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'oel61'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'oel61'
CRS-2677: Stop of 'ora.CRS.dg' on 'oel61' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'oel61'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.oel61.vip' on 'oel61'
CRS-2677: Stop of 'ora.FRA.dg' on 'oel61' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel61'
CRS-2677: Stop of 'ora.asm' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.crsd' on 'oel62'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'oel62'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'oel62'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'oel62'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'oel62'
CRS-2673: Attempting to stop 'ora.oc4j' on 'oel62'
CRS-2673: Attempting to stop 'ora.mgmtdb' on 'oel62'
CRS-2673: Attempting to stop 'ora.cvu' on 'oel62'
CRS-2673: Attempting to stop 'ORCL1.db' on 'oel62'
CRS-2677: Stop of 'ora.cvu' on 'oel62' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'oel62' succeeded
CRS-2677: Stop of 'ora.scan1.vip' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'oel62'
CRS-2677: Stop of 'ora.oel61.vip' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'oel61'
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'oel62'
CRS-2677: Stop of 'ora.ons' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'oel61'
CRS-2677: Stop of 'ora.net1.network' on 'oel61' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'oel61' has completed
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.oel62.vip' on 'oel62'
CRS-2677: Stop of 'ora.scan3.vip' on 'oel62' succeeded
CRS-2677: Stop of 'ora.scan2.vip' on 'oel62' succeeded
CRS-2677: Stop of 'ora.mgmtdb' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.CRS.dg' on 'oel62'
CRS-2673: Attempting to stop 'ora.MGMTLSNR' on 'oel62'
CRS-2677: Stop of 'ora.crsd' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'oel61'
CRS-2673: Attempting to stop 'ora.evmd' on 'oel61'
CRS-2673: Attempting to stop 'ora.storage' on 'oel61'
CRS-2677: Stop of 'ora.storage' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel61'
CRS-2677: Stop of 'ora.oel62.vip' on 'oel62' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'oel61' succeeded
CRS-2677: Stop of 'ora.evmd' on 'oel61' succeeded
CRS-2677: Stop of 'ora.oc4j' on 'oel62' succeeded
CRS-2677: Stop of 'ora.CRS.dg' on 'oel62' succeeded
CRS-2677: Stop of 'ora.MGMTLSNR' on 'oel62' succeeded
CRS-2677: Stop of 'ora.asm' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'oel61'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'oel61' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'oel61'
CRS-2677: Stop of 'ora.cssd' on 'oel61' succeeded
CRS-2677: Stop of 'ORCL1.db' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'oel62'
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'oel62'
CRS-2677: Stop of 'ora.DATA.dg' on 'oel62' succeeded
CRS-2677: Stop of 'ora.FRA.dg' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel62'
CRS-2677: Stop of 'ora.asm' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'oel62'
CRS-2677: Stop of 'ora.ons' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'oel62'
CRS-2677: Stop of 'ora.net1.network' on 'oel62' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'oel62' has completed
CRS-2677: Stop of 'ora.crsd' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'oel62'
CRS-2673: Attempting to stop 'ora.evmd' on 'oel62'
CRS-2673: Attempting to stop 'ora.storage' on 'oel62'
CRS-2677: Stop of 'ora.storage' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'oel62'
CRS-2677: Stop of 'ora.ctssd' on 'oel62' succeeded
CRS-2677: Stop of 'ora.evmd' on 'oel62' succeeded
CRS-2677: Stop of 'ora.asm' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'oel62'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'oel62' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'oel62'
CRS-2677: Stop of 'ora.cssd' on 'oel62' succeeded
root@oel61:/root/ [grid]

Gesamtes Cluster starten

root@oel61:/root/ [grid] crsctl start cluster -all

Default Value einer Ressource aendern

root@oel62:/root/ [grid] crsctl status type clu_db.type -f | grep -A 1 START_TIMEOUT
ATTRIBUTE=START_TIMEOUT
DEFAULT_VALUE=600
root@oel62:/root/ [grid] crsctl modify type clu_db.type -attr "ATTRIBUTE=START_TIMEOUT,DEFAULT_VALUE=600"
root@oel62:/root/ [grid] crsctl status type clu_db.type -f | grep -A 1 START_TIMEOUT
ATTRIBUTE=START_TIMEOUT
DEFAULT_VALUE=600
root@oel62:/root/ [grid]

top

Nach einem Reboot des oel62 bzw Reload der udev Rules sind die ASM Disks auch auf dem zweiten Server verfuegbar.