Umgebung:
Für das neue Cluster können keine neuen Luns für die Voting/OCR Platte zur Verfügung gestellt werden, es müssen die vorhanden RAW Platten genutzt werden.
Ablauf:
Die 10g Clusterumgebung wird ersetzt, d.h. wir installieren einen frische 11gR2 Umgebung und registieren dort die Datenbanken.
Einspielen/überprüfen der notwendigen Pakete:
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel nscd pdksh
Kernel Settings überprüfen
vi /etc/sysctl.conf net.core.wmem_max=1048586 fs.file-max = 6815744 kernel.msgmax = 65536 net.ipv4.ip_local_port_range = 9000 65500 # einlesen sysctl -p
NTP Settings überprüfen, dabei auf das führende Leerzeichen achten
$ vi /etc/sysconfig/ntpd … OPTIONS=” -x –u ntp:ntp –p /var/run/ntp.pid” … <code> Name Service Cache Dämon einschalten <code bash> #chkconfig --list nscd nscd 0:off 1:off 2:off 3:on 4:off 5:on 6:off # chkconfig --level 35 nscd on
Schreibrechte auf /opt um das Grid Directory dort anzulegen (chmod 777 /opt ).
Bestehende IP Konfiguration auslesen:
# als user root in des crs home wechseln: cd /opt/oracle/product/10.2.0/crs/bin/ ./oifcfg getif
Im DNS oder der Host Datei die Namen/IP Adressen des Clusters auf die -vip und - priv Namen prüfen.
DNS Einträge für die SCAN Vips im DNS erstellen und auf beiden Knoten prüfen.
Software von Metalink laden ( zum Beispiel nach /home/oracle/install ,die MD5 Hashes überprüfen, um Dateifehler frühzeitig zu erkennen).
Grid Infrastructure Software 11.2.0.3 ⇒ p10404530_112030_Linux-x86-64_3of7.zip
md5sum p10404530_112030_Linux-x86-64_3of7.zip 695cbad744752239c76487e324f7b1ab p10404530_112030_Linux-x86-64_3of7.zip unzip p10404530_112030_Linux-x86-64_3of7.zip
Patche:
14788514 ( GRID INFRASTRUCTURE PSU 11.2.0.3.4) ⇒ p14788514_112034_Linux-x86-64
MD5 :: 96CFCB4DE3011EEA7AA5A3911D28087E
6880880 ( OPatch Patch) ⇒ p6880880_112000_Linux-x86-64
MD5 :: 6c8188cb39f8fad8d552400c32fd5360
Für die aktuellen Patche siehe auch jeweils:
Die Patche auf beiden Knoten zur Verfügung stellen.
scp p14788514_112034_Linux-x86-64.zip racdb02:/home/oracle/install/ scp p6880880_112000_Linux-x86-64 racdb02:/home/oracle/install/
Laut Oracle Doku sollte min. 300MB auf jeder Platte zur Verfügung stehen ( siehe |Requirments )
# als root /opt/oracle/product/10.2.0/crs/bin > ./ocrcheck .. Total space (kbytes) : 256820 Used space (kbytes) : 4696 ...
Besonders wichtig ist das sichern der VOTING und OCR Disks, diesen werden aber Nach dem stop des crs gesichert!
Auf jeden Knoten ! als root:
mkdir crs_backup cd crs_backup tar cvfz node1_crs_10gr2.tar /opt/oracle/product/10.2.0/crs/* tar cvfz node1_db_asm_10gr2.tar /opt/oracle/product/10.2.0/db_1/* tar cvfz node1_etc_oracle /etc/oracle/* cp /etc/inittab etc_inittab mkdir etc_init_d cp /etc/init.d/init* ./etc_init_d/
Datenbank wie gewohnt sichern, falls sich das Backup auf dem ASM Platten befindet, entsprechend extern zusätzlich sichern!
Applikation deaktivieren/stoppen!
Datenbank mit shutdown immediate stoppen und wieder starten (um einen sauberen Zustand zu erhalten!)
#User oracle CRS Umgebung setzen! srvctl stop database –d gpi –o immediate srvctl start database –d gpi #Kontrolle crs_stat -t
Sicherung des Controlfiles und der letzten Archive seit dem letzten Backup
#User oracle DB Umgebung setzen! rman rman>connect target / rman>backup archivelog all not backed up 1 times; rman>backup spfile; rman>backup current controlfile;
Falls sich das Backup auf dem ASM Platten befindet dieses Backup entsprechend extern zusätzlich sichern bzw. mit der RMAN Format Option gleich auf einen andere Location sichern.
Datenbank herunterfahren mit:
#User oracle Umgebung setzen!
srvctl stop database –d gpi –o immediate
Der CRS 10g Stack wird vollständig „abgeschaltet“, damit steht im Fehlerfall die Umgebung für ein Restore noch zur Verfügung.
Cluster stoppen auf beiden Konten:
#User root ! /opt/oracle/product/10.2.0/crs/bin/crs_stat -t /opt/oracle/product/10.2.0/crs/bin/crsctl stop crs </code bash> \\ Cluster Ware 10g Umgebung deaktivieren – auf allen Knoten! <code bash> # Konfiguration verschieben mv /etc/oracle /etc/oracle_bkp mkdir /etc/init.d/bkp mv /etc/init.d/init* /etc/init.d/bkp # inittab editieren # die clusterware zeilen entfernen! vi /etc/inittab h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null #die Socket Dateien entfernen rm -rf /tmp/.oracle rm -rf /var/tmp/.oracle # neu starten reboot
Alle Konten neu booten und prüfen das keine Prozesse der Clusterware Umgebung noch laufen!
# auf allen knoten pürfen das nichts mehr über das CRS Home läuft ps –afx | grep crs
Mit dd eine Sicherungskopie erstellen:
dd if=/dev/raw/raw1 of=ocr_disk_10gr2.bkp gzip ocr_disk_10gr2.bkp dd if=/dev/raw/raw2 of=voting_disk_10gr2.bkp gzip voting_disk_10gr2.bkp
Eine der RAW Platten wird zu neuen Cluster Registry initialisiet Die Raw Platten dazu aus der Konfiguration nehmen (beide Knoten!)
# Raw Platten entfernen vi /etc/sysconfig/rawdevices service rawdevices restart oracleasm createdisk DG_VOT01 /dev/sdb1
Installation wie bei einer frischen Umgebung.
# Als root auf jeden Knoten cd /tmp cp /home/oracle/install/grid/rpm/cvuqdisk-1.0.9-1.rpm /tmp scp /tmp/cvuqdisk-1.0.9-1.rpm racdb02:/tmp yum install –-nogpgcheck cvuqdisk-1.0.9-1.rpm ssh racdb02 cd /tmp yum install –-nogpgcheck cvuqdisk-1.0.9-1.rpm
# User oralce Cd /home/oracle/install/grid/ ./runcluvfy.sh stage -post hwos –n racdb01,racdb02 –verbose ./runcluvfy.sh stage -pre crsinst -n racdb01,racdb02 –verbose
./runInstaller
./srvctl config scan
Reboot um zu testen ob alles sauber startet
Vor dem Patch der Clusterware Software muss der Patch Installer OPatch aktualisiert werden. Test der aktuellen Version:
cd $ORACLE_HOME/OPatch ./opatch version OPatch Version: 11.2.0.1.7
Die Aktualisierung besteht darin, das komplette Verzeichnis OPatch auszutauschen, den OPatch Patch auspacken und dann in das OPatch Verzeichnis unter $ORACLE_HOME ersetzen.
# altes OPatch sichern cd $ORACLE_HOME/ mv OPatch OPatch_OLD # neues OPatch auspacken cd /export/home/oracle/install unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME # auf den zweiten knoten ebenfalls patchen ssh racdb01 mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_OLD exit scp -r ./OPatch racdb02:/opt/11.2.0.3/grid/ # testen auf beiden Knoten! cd $ORACLE_HOME/OPatch ./opatch version OPatch Version: 11.2.0.3.2
Aufruf des Programms emocmrsp auf jeden Knoten.
# Grid home setzen cd /home/oracle $ORACLE_HOME/OPatch/ocm/bin/emocmrsp # Antworten (empty return, Y ) mv ocm.rsp /opt/oracle
Dafür die Patch Software auf jeden Knoten legen wie /home/oracle/install und auspacken( unzip p14788514_112034_Linux-x86-64.zip ).
Der Patch wird als root User eingepielt!
Command: opatch auto <UNZIPPED_PATCH_LOCATION> -oh <Comma separated Oracle home paths> -ocmrf <ocm response file>
/opt/11.2.0.3/grid/OPatch/opatch auto /home/oracle/install -oh /opt/11.2.0.3/grid -ocmrf /opt/oracle/ocm.rsp
Ein Knoten nach den anderen!
Testen ob alles wieder richtig läuft!
Für neuere Patch siehe auch unter Oracle Support:
Asmca starten und mit „mount all“ alle ASM Platten neu in das ASM Cluster einbinden
Mit „crs_stat –t“ prüfen ob die Platten eingebunden sind.
System neustarten und prüfen ob danach noch alles richtig registriert ist.
Nodes pinnen ( als Root!)
/opt/11.2.0.3/grid/bin/crsctl pin css –n racdb01 /opt/11.2.0.3/grid/bin/crsctl pin css –n racdb02
Im Cluster anmelden, dazu das Datenbank home richtig setzen!
srvctl add database -d GPI -o /opt/oracle/product/10.2.0/db_1/ -p +DATA/gpi/spfilegpi.ora –y AUTOMATIC srvctl add instance -d GPI -i GPI1 -n racdb01 srvctl add instance -d GPI -i GPI2 -n racdb02
Wenn dieser Fehler auftritt, wurde der Node nicht gepinnt ⇒“ PRKC-1056 : Failed to get the hostname for node racdb02 und PRKH-1001 : HASContext Internal Error“ (siehe „srvctl add instance“ Fails to Add pre-11.2 Database Instance in 11gR2 GI With PRKO-2006 : Invalid node name [ID 1454446.1]”
(da ja immer auch noch das alte CRS Home installiert ist, muss die CRS Location gesetzt werden, sonst werden keine nodes angezeigt!)
./runInstaller -crsLocation /opt/11.2.0.3/grid/
Auf beiden Knoten!
Opatch wie zuvor bereits für das Grid Home beschrieben mit dem Patch p6880880_112000_Linux-x86-64.zip ersetzen.
Patch auf beiden Knoten bereitstellen p14275605_112030_Linux-x86-64.zip mit der MD5 :: 2BC32D03AE0FC98BF72B219CB4B1D994
Nach dem auspacken das zip File unbedingt löschen, damit das Verzeichnis bis auf dem erzeugten Ordner leer ist!
OCM Configuration wie bereits auch für das Cluster beschrieben erstellen
/opt/oracle/product/11.2.0.3/dbhome_1/OPatch/ocm/bin/emocmrsp mv ocm.rsp /opt/oracle/ocm_db.rsp
Patch einspielen als root!
/opt/oracle/product/11.2.0.3/dbhome_1/OPatch/opatch auto /home/oracle/install -oh /opt/oracle/product/11.2.0.3/dbhome_1 -ocmrf /opt/oracle/ocm_db.rsp
Weiter wie in DB Upgrade auf einer Standard Umgebung beschrieben,
zum Beispiel wie unter 10g R2 Datenbank auf Sparc Solaris 10 auf 11g R2 upgraden , darauf achten den clustermode auf false für das Upgrade der DB zu setzen.
Anmerkungen für den DB Upgrade einer Cluster Datenbank: