Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:clusterware_upgrade_10g_11g_linux

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/
  1. Screen 1 - Auswahl abwählen
  2. Screen 2 - Skip software updates
  3. Screen 3 - Install database software only
  4. Screen 4 - RAC Installation , beide Knoten anwählen
  5. Screen 5 - Englisch
  6. Screen 6 - gewünschte Option wählen
  7. Screen 7 - Software Home setzen /opt/oracle/product/11.2.0.3/dbhome_1
  8. Screen 8 - dba Gruppe wählen
  9. Screen 9 - Prerequist Checks
  10. Screen 10- Response File speichern - install
  11. 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

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/clusterware_upgrade_10g_11g_linux.txt · Zuletzt geändert: 2015/07/29 13:37 von Gunther Pippèrr