Oracle RAC 12c mit Oracle 6.3 unter vmware vSphere / ESX Server
Checkliste Voraussetzungen:
- VMware ESXi 5.0
- Oracle Linux 6.3 (OL6)
- Oracle Database 11
Notwendiges Wissen:
- Administration von Linux
- Administration von Oracle Database
Für das Einrichten der Shared Disks und das Klonen wird ein SSH-Zugang zu dem ESX-Server benötigt. Wie dieser eingerichet wird , habe ich ich in diesem Artikel beschrieben: "vmware vSphere / ESX Server SSH Zugang aktivieren"
Supportunterstützung
Diese Support Martix zeigt die Abhänigkeiten zwischen OS und Oracle Database
OS | 10g R1 | 10g R2 | 10g R5 | 11g R1 | 11g R2 | 12c R1 | 12c R2 |
---|---|---|---|---|---|---|---|
Red Hat Enterprise Linux 3 | X | X | |||||
Red Hat Enterprise Linux 4 | X | X | |||||
Red Hat Enterprise Linux 5 | X | X | X | X | X | ||
Red Hat Enterprise Linux 6 | X | X | X |
Basis Installation Oracle 6.3
Die Basis Installation erfolgt wie bereits in der Dokumention beschrieben
Anpassung der Basis Installation Oracle Linux 6.3 für Oracle Database
Nach Basisinstallation erfolgt die Anpassung für das RAC
Netzwerk:
Das Netzwerk wird eingerichet. Dafür ist ein weitere Netzwerkadapter notwenig
ora06-li01
Schnittstelle | IP | Network Mask | Netwerk | Name | Kommentar | Konfiguration |
---|---|---|---|---|---|---|
eth0 | 172.20.3.121 | / 16 | 172.20 | ora06-li01 | Normales Admin Network | OS DHCP |
eth1 | 10.1.0.121 | / 24 | 10.1.0.0 | ora06-li01-priv | Interconnect | OS static |
ora06-li02
Schnittstelle | IP | Network Mask | Netwerk | Name | Kommentar | Konfiguration |
---|---|---|---|---|---|---|
eth0 | 172.20.3.122 | / 16 | 172.20 | ora06-li02 | Normales Admin Network | OS DHCP |
eth1 | 10.1.0.122 | / 24 | 10.1.0.0 | ora06-li02-priv | Interconnect | OS static |
ora06-li Shared
Schnittstelle | IP | Network Mask | Netwerk | Name | Kommentar | Konfiguration |
---|---|---|---|---|---|---|
eth0 | 172.20.5.121 | / 16 | 172.20 | ora06-li01-vip | Virtual IP | |
eth0 | 172.20.5.122 | / 16 | 172.20 | ora06-li02-vip | Virtual IP | |
eth0 | 172.20.4.120 | / 16 | 172.20 | ora06-li-scan | Scan Listener |
/etc/hosts:
IP | |
---|---|
172.20.3.121 | ora06-li01 |
172.20.3.122 | ora06-li02 |
10.1.0.121 | ora06-li01-priv |
10.1.0.122 | ora06-li02-priv |
172.20.5.121 | ora06-li01-vip |
172.20.5.122 | ora06-li02-vip |
172.20.4.120 | ora06-li-scan |
Network Interconnect:
ora06-li01
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
DHCPCLASS=
HWADDR=
IPADDR=10.1.0.121
NETMASK=255.255.255.0
ONBOOT=yes
ora06-li02
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
DHCPCLASS=
HWADDR=
IPADDR=10.1.0.122
NETMASK=255.255.255.0
ONBOOT=yes
Storage:
ora06-li01
/application/oracle | 40GB | Installation von Oracle |
/INSTALL | 16GB | Inallationsquellen |
ora06-li02
/application/oracle | 40GB | Installation von Oracle |
ora06-li
/application/oracle | 40GB | Installation von Oracle |
ocr01 | 4GB | RAW für ASM OCR |
ocr02 | 4GB | RAW für ASM OCR |
ocr03 | 4GB | RAW für ASM OCR |
disk01 | 4GB | RAW für ASM Data |
disk02 | 4GB | RAW für ASM Data |
disk03 | 4GB | RAW für ASM Data |
disk04 | 4GB | RAW für ASM Data |
Temporär /dev/shm anpassen
Die Datei "/etc/fstab" anpassen
tmpfs /dev/shm tmpfs defaults,size=2048M 0 0
Gruppen und Gruppen-IDs (GID)
Für eine saubere Trennung von den Aufgaben des System- bzw. Storage-Administrators auf der einen Seite und der Datenbank Administratoren auf der anderen Seite, ist es notwendig unterschiedlicher Benutzer und Benutzergruppen anzulegen.
Bereich Gruppe Zugeordnete Benutzer Bedeutung Software Installation oinstall grid
oracleAlle Benutzer, die Software installieren, müssen dieser Gruppe als Primärgruppe angehören. Dies ist insbesondere für das gemeinsam verwendete Oracle Inventory notwendig. Grid Administration
asmadmin
grid Benutzer, die zur dieser ASM Admin Gruppe gehören, melden sich als SYSASM an der ASM Instanz an und dürfen somit Diskgruppen verwalten. Dies ist auch die Gruppe, der die ASM Platten/Devices zugeordnet sein müssen ASM DBA
asmdba
grid
oracleASM DBA Benutzer melden sich als SYSDBA an der ASM Instanz an. Dies ist notwendig, damit die Datenbank Instanz (die sich ebenfalls als SYSDBA anmeldet) Datenfiles in ASM anlegen kann.
Im Gegensatz zum DBA bei einer Datenbank können diese Benutzer ASM nicht stoppen oder starten. Ebenfalls können keine Diskgruppen verwaltet werden. SYSASM und SYSDBA Gruppen werden in das oracle Executable der Grid Infrastruktur gelinktASM Operator asmoper grid Die ASM Operators sind Benutzer, die ASM stoppen und starten dürfen. Diese Gruppe ist nur notwendig, falls man einigen DBAs auch das Stoppen und Starten von ASM erlauben möchte. Liegen allerdings OCR und Voting Disks in der ASM, so kann ASM nur vom Root User durch das Stoppen des Clusters angehalten werden. DB Admin dba oracle Benutzer der DBA Gruppe melden sich als SYSDBA an der jeweiligen Oracle Datenbank an. Backup backupdba Erstellen Sie diese Gruppe, wenn Sie eine separate Gruppe für das Backup / Recovery haben möchten. Benutzer, die dieser Gruppe angehöhren, haben angepaste Rechte für Datenbank-Backup und Wiederherstellung mtr niedrigern Privileg (SysBackup Privileg). DataGuard dgdba Erstellen Sie diese Gruppe, wenn Sie eine separate Gruppe für die Administrationvon DataGuard haben möchten. Benutzer, die dieser Gruppe angehöhren, haben angepaste Rechte für die Administratration von DataGuard key management kmdba Erstellen Sie diese Gruppe, wenn Sie eine separate Gruppe für das Key Managment haben möchten. Zuordnung der Benutzer und User-IDs (UID) zu den Gruppen
Benutzer
Gruppen
Bereich grid
asmadmin,asmdba,oinstall
Installation, Verwaltung der Grid Infrastruktur und ASM und Anlegen von Diskgruppen.
oracle
dba,asmdba,oinstall
Installation und Verwaltung Datenbank
/usr/bin/getent group asmoper || groupadd -g 252 asmoper
/usr/bin/getent group asmdba || groupadd -g 253 asmdba
/usr/bin/getent group oinstall ||groupadd -g 254 oinstall
/usr/bin/getent group dba ||groupadd -g 255 dba
/usr/bin/getent group backupdba ||groupadd -g 256 backupdba
/usr/bin/getent group dgdba ||groupadd -g 257 dgdba
/usr/bin/getent group kmdba ||groupadd -g 258 kmdba
/usr/bin/getent group asmadmin || groupadd -g 259 asmadmin
/usr/bin/getent passwd oracle || useradd -g oinstall -G dba -d /home/oracle -s /bin/bash -u 1001 oracle
usermod -G dba,asmdba,backupdba,dgdba,kmdba,oinstall oracle
/usr/bin/getent passwd grid || useradd -G asmadmin,asmdba,asmoper -g oinstall -d /home/grid -s /bin/bash -u 1002 grid
mkdir /home/grid
chown grid:asmadmin /home/grid
passwd -r files grid
test -f ~grid/.bashrc && cp ~grid/.profile ~grid/.bashrc.bak
echo "HISTSIZE=3000
export HISTSIZE
unset LANG;
export sitename=\`hostname\`
PS1='[ \${LOGNAME}@\${sitename} SID=\${ORACLE_SID}: \$PWD ]
> ';export PS1
PS2='Befehl komplettieren! >: '
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=\"/applications/oracle/base\"; export ORACLE_BASE
ORACLE_HOME=\"/applications/oracle/grd/11.2.0.3\"; export ORACLE_HOME
ORACLE_PATH=\"\$ORACLE_HOME/bin\";export ORACLE_PATH
PATH=\"\$ORACLE_PATH:\$PATH\";export PATH
umask 022" > ~grid/.bashrc
Shared Disks auf dem ESX-Server erzeugen
Die Shared Disks erzeugen wir direkt auf dem ESX-Server und binden diese Später in die virtuelle Maschine ein.
Wir melden uns auf dem ESX-Server mit SSH an und erzeugen ein Verzeichniss , wo wir die Shared Disks ablegen möchten.
mkdir /vmfs/volumes/datastore2/ora06-shared
RAW Disks für OCR anlegen
for i in `seq 1 3`;do vmkfstools -d eagerzeroedthick -c 4G /vmfs/volumes/datastore2/ora06-shared/ocr-0${i}.vmdk;done
RAW Disks für Data anlegen
for i in `seq 1 4`;do vmkfstools -d eagerzeroedthick -c 4G /vmfs/volumes/datastore2/ora06-shared/data-0${i}.vmdk;done
Shared Disk in die Virtuelle Maschine integrieren.
Das einbinden von Shared Disks in einer Virtuelle Maschine geschieht über einen neuen SCSI-Controller, der die Einstelltung erhält, die Disks mit andern virtuellen Maschinen zu Teilen
Das einbinden wird hier erklärt:
Die Eigenschalten vom SCSI-Controller für Shared-Disk:
Einbinden und vorbereiten der neuen RAW-Devices im ASM
Die neuen Platten werden in der virtullen Maschine mit dem UDV-eingebunden. Damit diese sich nicht verändern, wenn neue Platten hinzugefügt wird, verwenden wir dafür die SCSI-ID. dafür verwenden wir folgendes Skript:
#!/bin/bash
# /usr/local/bin/create-udev.sh
# search Disks with a size from 4294 MB
UDEV_RULES="/etc/udev/rules.d/60-raw.rules";
test -f "${UDEV_RULES}" && rm ${UDEV_RULES}
touch ${UDEV_RULES}
i="1";
for disk in `fdisk -l|grep "4294 MB"|awk '{gsub(/:/,"",$2);print $2}'`
do
if [ ! -b ${disk}1 ]
then
cat <<EOF | fdisk ${disk}
n
p
1
1
1017
t
83
w
EOF
fi
scsi_id=`/sbin/scsi_id --whitelisted --replace-whitespace --device=${disk}1`
J=$((i++))
UDEV="KERNEL==\"sd?1*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$parent\",RESULT==\"${scsi_id}\",NAME+=\"Oracle_disk${J}\", OWNER=\"grid\" GROUP=\"oinstall\" MODE=\"0660\", RUN+=\"/bin/raw /dev/raw/raw${J} /dev/Oracle_disk${J}\""
echo "$UDEV" >> ${UDEV_RULES}
done
echo -e "\nACTION==\"add\", KERNEL==\"raw*\", OWNER==\"oracle\", GROUP==\"oinstall\", MODE==\"0660\"" >> ${UDEV_RULES}
Die entsprechende Rechte setzen und das Skript ausführen
chmod 755 /usr/local/bin/create-udev.sh
/usr/local/bin/create-udev.sh
Danach stehen unter "/dev/raw" die Disks zu Verfügung
ls -l /dev/raw/*
crw-rw----. 1 oracle oinstall 162, 1 Jun 19 09:38 /dev/raw/raw1
crw-rw----. 1 oracle oinstall 162, 2 Jun 19 09:38 /dev/raw/raw2
crw-rw----. 1 oracle oinstall 162, 3 Jun 19 09:38 /dev/raw/raw3
crw-rw----. 1 oracle oinstall 162, 4 Jun 19 09:38 /dev/raw/raw4
crw-rw----. 1 oracle oinstall 162, 5 Jun 19 09:38 /dev/raw/raw5
crw-rw----. 1 oracle oinstall 162, 6 Jun 19 09:38 /dev/raw/raw6
crw-rw----. 1 oracle oinstall 162, 7 Jun 19 09:38 /dev/raw/raw7
crw-rw----. 1 oracle oinstall 162, 0 Jun 19 09:38 /dev/raw/rawctl
Zusätzliche Software installieren
Notwendige Software wird mit
yum install oracle-rdbms-server-12cR1-preinstall
nachinstalliert.
Konfiguration Cluster Time Synchronization Service - (CTSS)
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.original
rm /var/run/ntpd.pid
Edit "/etc/sysconfig/ntpd" und das -x Option hinzufügen
# Drop root to id 'ntp:ntp' by default. OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
Then, restart the NTP service.
Neustart vom dem NTP service.
/sbin/service ntpd restart
Anpassen der Datei "/etc/selinux/config". SELINUX abschalten
SELINUX=disabled
Anpassen der Datei "/etc/sysctl.conf" für die Kernel Parameter
kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=262144
Anpassen der Datei "/etc/security/limits.conf" für User-Limits
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536
Anpassen der Datei "/etc/pam.d/login"
session required pam_limits.so
SSH-Key für Grid und Oracle erzeugen
for user in oracle grid;do mkdir -p /home/${user}/.ssh; ssh-keygen -b 4096 -t rsa -f /home/${user}/.ssh/id_rsa -P "";chown -R ${user} /home/${user}/.ssh; done
for user in oracle grid;do mv /home/${user}/.ssh/id_rsa.pub /home/${user}/.ssh/
Klonen der virtuelle Maschine
Nachdem die Vorbereitungen abgeschlosen sind, können wir die virtuelle Maschne klonen.
Dazu verwenden wir diese Anleitung
Hostname anpassen
Der Hostname wird in der Datei "/etc/sysconfig/network" gespeichert.
NETWORKING=yes
HOSTNAME=ora06-li02
Netzwerk anpassen nach dem Klonen
Nach dem klone bekommt die neue virtuelle Maschine eine neue MAC-Adresse.
Diese Anpassung kann nur in der VMware Konsole durchgeführt werden, weil das Netzwerk nicht zu Verfügung steht
Nach einem reboot bekommt die neue virtuelle Maschine mit DHCP eine neue IP-Adresse.
Überprüfung der Installationsbassis
SSH Zugang auf beiden Seiten Testen
[ grid@ora06-li01 SID=+ASM1: /INSTALL/11.2.0.3.0/grid ]
> ssh ora06-li02
The authenticity of host 'ora06-li02 (172.20.3.122)' can't be established.
RSA key fingerprint is c2:b1:15:61:cf:02:c5:23:90:0a:0b:82:60:83:b6:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ora06-li02,172.20.3.122' (RSA) to the list of known hosts.
Last login: Fri Jun 21 08:10:22 2013 from localhost
[ grid@ora06-li02 SID=+ASM1: /home/grid ]
> logout
Connection to ora06-li02 closed.
[ grid@ora06-li01 SID=+ASM1: /INSTALL/11.2.0.3.0/grid ]
> ssh ora06-li01
The authenticity of host 'ora06-li01 (172.20.3.121)' can't be established.
RSA key fingerprint is c2:b1:15:61:cf:02:c5:23:90:0a:0b:82:60:83:b6:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ora06-li01,172.20.3.121' (RSA) to the list of known hosts.
Last login: Fri Jun 21 09:02:05 2013 from 172.20.2.66
[ grid@ora06-li01 SID=+ASM1: /home/grid ]
> logout
Connection to ora06-li01 closed.
cd /mountpoint/clusterware_install
./runcluvfy.sh stage -pre crsinst -n ora06-li01,ora06-li02
Installation Oracle Grid Infrastructure für RAC
Für die Installation melden wir uns als Benutzer "grid" an und starten den Installer:
cd /INSTALL/11.2.0.3.0/grid
#[ grid@ora06-li01 SID=+ASM1: /INSTALL/11.2.0.3.0/grid ]
./runInstaller
Danach folgenden wir dem Instllations-Dialog:
Artikelaktionen