Inhaltsverzeichnis
Upgarde RAC - Linux 10g Clusterware 10g 10.2.0.5 auf 11g R2 11.2.0.3 + CPU
Umgebung:
- Zwei Clusterknoten, racdb01 und racdb02
- OCR Disk auf Raw Device, VOT Disk auf Raw Device
- Daten Platten über ASMLib.
- Grid Installation:/opt/oracle/product/10.2.0/crs
- ASM und DB Installation unter: /opt/oracle/product/10.2.0/db_1
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:
- Linux Umgebung prüfen und Pakete für 11gR2 einspielen
- IP Configuration überprüfen und dokumentieren
- SCAN Vips im DNS eintragen
- Software bereitstellen
- Backup der Umgebung und der Datenbanken
- Start der Downtime 1
- CRS ausschalten und deaktivieren
- OCR Platten von Knoten 1 aus sichern
- 11gR2 Grid Infrastucture installieren
- Aktuellen Patch der Grid Infrastructure einspielen
- ASM Platten 10g Umgebung einbinden
- 10g Datenbank(en) in der 11g RAC Umgebung registrieren
- Ende der Downtime 1
- Upgarde der Datenbanken vorbereiten
- Start der Downtime 2
- Datenbank auf 11g migrieren
- Ende der Downtime 2
Die 10g Clusterumgebung wird ersetzt, d.h. wir installieren einen frische 11gR2 Umgebung und registieren dort die Datenbanken.
Linux Umgebung prüfen und Pakete für 11gR2 einspielen
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 ).
IP Configuration überprüfen und dokumentieren
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.
SCAN Vips im DNS eintragen
DNS Einträge für die SCAN Vips im DNS erstellen und auf beiden Knoten prüfen.
Software bereitstellen
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:
- Oracle Support Document 1517790.1 (11.2.0.3 Grid Infrastructure Patch Set Updates - List of Fixes in each GI PSU)
- Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)
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/
Größe und Status der OCR Platten überprüfen
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 ...
Backup der Verzeichniss und der Cluster 10g Umgebung
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!
Start der Downtime – Datenbank stoppen
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
CRS ausschalten und deaktivieren
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
OCR Platten von Knoten 1 aus sichern
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
Platte for die OCR/VOT Umgebung bereitstellen
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 der 11gR2 Grid Infrastucture
Installation wie bei einer frischen Umgebung.
Clufy rpms installieren
# 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
Clufy tests
# 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
Software installer aufrufen
./runInstaller
- Step1 - Skip Software updates
- Step2 - Option „Install and configure Oracle Grid Infrastucture for a Cluster“
- Step3 - Option “Typical Installation”
- Step4 - Scanlistener angeben RACSCAN und zweiten Knoten hinzufügen
- Step5 - Software Location setzen (/opt/11.2.0.3/grid) und ASM wählen, passwort setzen (Hugo123456)
- Step6 - Falls keine Platten angezeigt werden auf /dev/oracleasm/disks/* ändern, VOT Platte auswählen (external!) und Vot Gruppe erzeugen
- Step7 - Prerequist steps – check results
- Step8 - Save reponse file and press install
- Step 9 - Root Scripts aufführen, ein knoten nach dem anderen!– Cluster Platte wird initialisiert
- Step10 - Clufy Fehlermeldung kann ignoriert werden
Scan Listener prüfen
./srvctl config scan
Reboot um zu testen ob alles sauber startet
Patch der 11gR2 Grid Infrastucture
Patch OPatch
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
OCM Configuration erstellen
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
Pach Set 14788514 installieren
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:
- 11.2.0.3.x Grid Infrastructure Bundle/PSU Known Issues [ID 1508641.1]
- Januar 2013 Patch 14727347: GRID INFRASTRUCTURE PATCH SET UPDATE 11.2.0.3.5 (INCLUDES DB PSU 11.2.0.3.5)
- Aber dieser Patch scheint einen Bug zu haben ⇒ daher Patch 16307750: PUMA: CLUSTERWARE UPGRADE TO 11.2.0.3 FAILS IN ROOTUPGRADE.SH
ASM Platten in die 11gR2 Umgebung übernehmen
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.
Datenbank in der 11gR2 Umgebung registrieren
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]”
Datenbank in der 11gR2 Umgebung updaten
DB Software installieren
(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/
- Screen 1 - Auswahl abwählen
- Screen 2 - Skip software updates
- Screen 3 - Install database software only
- Screen 4 - RAC Installation , beide Knoten anwählen
- Screen 5 - Englisch
- Screen 6 - gewünschte Option wählen
- Screen 7 - Software Home setzen /opt/oracle/product/11.2.0.3/dbhome_1
- Screen 8 - dba Gruppe wählen
- Screen 9 - Prerequist Checks
- Screen 10- Response File speichern - install
- Screen 11- Software wird installiert - root Scripte ausführen
mit aktuellen Patch patchen
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
DB Upgrade
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:
- Pfile erstellen mit Cluster Modus false - als Vorlage ein create pfile from spfile verwenden
- DB Statistiken auf der „alten“ DB erstellen, falls nicht bereits in der Vorbereitung zuvor erledigt
- Pre Upgrade Script durchführen und abarbeiten
- DB im alten Home mit srvctl stoppen
- Auf Knoten 1 mit der vom ersten Schritt erstellten init.ora eine Instance der DB aus dem neuen Oracle Home im Upgrade Modus starten
- Upgrade Schritte durchführen
- Spfile für evlt. auf 11g angepasst Parameter für die Datenbank neuerstellen (Cluster Modus wieder auf true!)
- Configuration der DB im RAC cluster mit srvctl auf das neue Home anpassen
- DB mit srvctl im Clustermodus neu starten