===== 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” … Name Service Cache Dämon einschalten #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 [[http://docs.oracle.com/cd/E11882_01/install.112/e24616/storage.htm#CACIJDHA||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 \\ Cluster Ware 10g Umgebung deaktivieren – auf allen Knoten! # 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 2>&1 /dev/null 2>&1 **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 -oh -ocmrf \\ /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 [[dba:10g_11g_upgrade_sparc_solaris#aktuelle_db_sichern_und_sicherungs-skript_deaktivieren|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 ===== Quellen ===== * http://docs.oracle.com/cd/E11882_01/install.112/e24616/procstop.htm#CEGHBJDB * http://docs.oracle.com/cd/E11882_01/install.112/e24321/toc.htm * http://www.oracledba.org/upgrade/Upgrade_10gR2_RAC_to_11gR2_RAC.htm