Upgrade Oracle RAC von 11.2.0.1 auf 11.2.0.3

Ab Oracle 11.2 wird das sogenannte "Out of Place" Upgrade unterstützt. Dies bedeutet, dass die Upgrades nicht mehr direkt in die vorhandenen Oracle-Homes installiert werden, sondern parallel neue Oracle-Homes aufgebaut werden. Dies bedeutet, dass der Patchset selber eine voll alleinstehende Softwareinstallation ist. Es muss also nicht im Vorfeld 11.2.0.1 installiert sein, um auf eine höhere Revision upgraden zu können. In diesem Beispiel ist eine komplett installierte 11.2.0.1 RAC-Datenbank unter Linux mit zwei Knoten installiert, welche nicht in ASM, sondern auf NFS liegt. Der Patchset besteht insgesamt aus 7 Zip-Dateien, wovon allerdings hier nur die ersten drei benötigt werden.

Patchset Datenbank:
p10404530_112030_Linux-x86-64_1of7.zip
p10404530_112030_Linux-x86-64_2of7.zip

Die Zip-Dateien des Patchsets der Datenbank müssen ineinander entpackt werden. In diesem Fall wurden die Dateien unter: /stage/11.2.0.3/database auf dem Knoten rac1 abgelegt.

Patchset Grid-Infrastructure:
p10404530_112030_Linux-x86-64_3of7.zip

Der Patchset für die Grid-Infrastructure liegt unter /stage/11.2.0.3/grid auf Knoten rac1.

Wichtiger Hinweis:

Dieses Upgrade bezieht sich von Version 11.2.0.1 auf Version 11.2.0.3 mit einem "Out of Place" Upgrade für die Grid-Infrastructure und der RAC-Datenbank. Unter Umständen müssen im Vorfeld zusätzliche Patches eingespielt werden, um das Upgrade durchführen zu können. Hierfür sollte im Vorfeld My Oracle Support befragt werden.

Upgrade der Grid-Infrastructure

1. Anlegen des neuen Grid-Home auf beiden Konten und erteilen der Rechte.
[oracle@rac2 ~]$ su -
Passwort:
[root@rac1 ~]# mkdir /u01/app/11.2.0.3
[root@rac1 ~]# chown oracle:oracle /u01/app/11.2.0.3
[root@rac1 ~]$ ssh rac2
[root@rac2 ~]$ su -
Passwort:
[root@rac2 ~]# mkdir /u01/app/11.2.0.3
[root@rac2 ~]# chown oracle:oracle /u01/app/11.2.0.3

2. Starten des Universal Installers auf Konten rac1
[oracle@rac1 ~]$ cd /stage/11.2.0.3/grid/
[oracle@rac1 grid]$ ls
doc      readme.html  rpm           runInstaller  stage
install  response     runcluvfy.sh  sshsetup      welcome.html
[oracle@rac1 grid]$ ./runInstaller
Oracle Universal Installer wird gestartet...

Temporärer Speicherplatz wird geprüft: muss größer sein als 120 MB.   Tatsächlich 47267 MB    Erfolgreich
Swap-Speicher wird geprüft: muss größer sein als 150 MB.   Tatsächlich 1843 MB    Erfolgreich
Monitor wird geprüft: muss so konfiguriert sein, dass mindestens 256 Farben angezeigt werden.    Tatsächlich 16777216    Erfolgreich
Vorbereitung für das Starten von Oracle Universal Installer aus /tmp/OraInstall2012-04-17_06-19-22PM. Bitte haben Sie einen Moment Geduld...[oracle@rac1 grid]$

3. Installation der neuen Grid-Infrastructure

a. Metalinkinformationen

1

b. Installationsauswahl.

2

c. Sprachenauswahl

3

d. Knotenauswahl, hier sind alle Knoten abgegraut, obwohl später ein Roling-Upgrade, also ein Knoten nach den anderen ein Upgrade erfährt.

4

e. Auswahl der ASM-Gruppen. (In diesem Fall uninteressant, da die Datenbank auf NFS-Laufwerken liegt)

5

f. Auswahl des neuen Grid-Home, welches im Vorfeld erstellt wurde.

6

g. Überprüfung der Vorraussetzungen

7

 h. Durchführung der Installation

9

i. Ausfüren des Scripts rootupgrade unter dem Benutzer root auf jedem Knoten nacheinander. Dieser Dialog darf erst bestätigt werden, wenn auf allen Knoten das Skript erfolgreich abgelaufen ist.

10

Ausführung auf Knoten rac1:

[oracle@rac1 ~]$ su -
Passwort:
[root@rac1 ~]# /u01/app/11.2.0.3/grid/rootupgrade.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /u01/app/11.2.0.3/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0.3/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation

Kein ASM konfiguriert.

CRS-2791: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac1" wird gestartet
CRS-2673: Versuch, "ora.crsd" auf "rac1" zu stoppen
CRS-2790: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac1' wird gestartet
CRS-2673: Versuch, "ora.LISTENER.lsnr" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.orcl.db" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.LISTENER_SCAN1.lsnr" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.LISTENER_SCAN1.lsnr" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.scan1.vip" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.LISTENER.lsnr" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.rac1.vip" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.rac1.vip" auf "rac1" erfolgreich
CRS-2672: Versuch, "ora.rac1.vip" auf "rac2" zu starten
CRS-2677: Stoppen von "ora.scan1.vip" auf "rac1" erfolgreich
CRS-2672: Versuch, "ora.scan1.vip" auf "rac2" zu starten
CRS-2676: Starten von "ora.rac1.vip" auf "rac2" erfolgreich
CRS-2676: Starten von "ora.scan1.vip" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.LISTENER_SCAN1.lsnr" auf "rac2" zu starten
CRS-2676: Starten von "ora.LISTENER_SCAN1.lsnr" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.orcl.db" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.ons" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.eons" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.ons" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.net1.network" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.net1.network" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.eons" auf "rac1" erfolgreich
CRS-2792: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac1' ist abgeschlossen
CRS-2677: Stoppen von "ora.crsd" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.gpnpd" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.cssdmonitor" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.ctssd" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.evmd" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.mdnsd" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.cssdmonitor" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.evmd" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.gpnpd" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.mdnsd" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.ctssd" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.cssd" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.cssd" auf "rac1" erfolgreich
CRS-2673: Versuch, "ora.diskmon" auf "rac1" zu stoppen
CRS-2673: Versuch, "ora.gipcd" auf "rac1" zu stoppen
CRS-2677: Stoppen von "ora.gipcd" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.diskmon" auf "rac1" erfolgreich
CRS-2793: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac1" ist abgeschlossen
CRS-4133: Oracle High Availability Services has been stopped.
OLR initialization - successful
Replacing Clusterware entries in inittab
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Vorbereiten der Pakete für die Installation...
cvuqdisk-1.0.9-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@rac1 ~]#

Ausführung auf Knoten rac2:

[root@rac1 ~]# ssh rac2
root@rac2's password:
Last login: Tue Apr 17 18:26:03 2012 from rac1.localdomain
[root@rac2 ~]# /u01/app/11.2.0.3/grid/rootupgrade.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /u01/app/11.2.0.3/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0.3/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
CRS-2791: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac2" wird gestartet
CRS-2673: Versuch, "ora.crsd" auf "rac2" zu stoppen
CRS-2790: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac2' wird gestartet
CRS-2673: Versuch, "ora.orcl.db" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.LISTENER.lsnr" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.LISTENER_SCAN1.lsnr" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.LISTENER.lsnr" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.rac2.vip" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.rac2.vip" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.rac2.vip" auf "rac1" zu starten
CRS-2677: Stoppen von "ora.LISTENER_SCAN1.lsnr" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.scan1.vip" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.scan1.vip" auf "rac2" erfolgreich
CRS-2672: Versuch, "ora.scan1.vip" auf "rac1" zu starten
CRS-2676: Starten von "ora.rac2.vip" auf "rac1" erfolgreich
CRS-2676: Starten von "ora.scan1.vip" auf "rac1" erfolgreich
CRS-2672: Versuch, "ora.LISTENER_SCAN1.lsnr" auf "rac1" zu starten
CRS-2676: Starten von "ora.LISTENER_SCAN1.lsnr" auf "rac1" erfolgreich
CRS-2677: Stoppen von "ora.orcl.db" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.ons" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.eons" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.ons" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.net1.network" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.net1.network" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.eons" auf "rac2" erfolgreich
CRS-2792: Herunterfahren der von Cluster Ready Services verwalteten Ressourcen auf 'rac2' ist abgeschlossen
CRS-2677: Stoppen von "ora.crsd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.gpnpd" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.cssdmonitor" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.ctssd" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.evmd" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.mdnsd" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.cssdmonitor" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.gpnpd" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.evmd" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.mdnsd" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.ctssd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.cssd" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.cssd" auf "rac2" erfolgreich
CRS-2673: Versuch, "ora.diskmon" auf "rac2" zu stoppen
CRS-2673: Versuch, "ora.gipcd" auf "rac2" zu stoppen
CRS-2677: Stoppen von "ora.gipcd" auf "rac2" erfolgreich
CRS-2677: Stoppen von "ora.diskmon" auf "rac2" erfolgreich
CRS-2793: Herunterfahren der von Oracle High Availability Services verwalteten Ressourcen auf "rac2" ist abgeschlossen
CRS-4133: Oracle High Availability Services has been stopped.
OLR initialization - successful
Replacing Clusterware entries in inittab
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Started to upgrade the Oracle Clusterware. This operation may take a few minutes.
Started to upgrade the CSS.
Started to upgrade the CRS.
The CRS was successfully upgraded.
Oracle Clusterware operating version was successfully set to 11.2.0.3.0

Kein ASM konfiguriert.

CRS-2672: Attempting to start 'ora.asm' on 'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.registry.acfs' on 'rac1'
CRS-2676: Start of 'ora.registry.acfs' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'rac2'
CRS-2676: Start of 'ora.asm' on 'rac2' succeeded
CRS-2672: Attempting to start 'ora.registry.acfs' on 'rac2'
CRS-2676: Start of 'ora.registry.acfs' on 'rac2' succeeded
Vorbereiten der Pakete für die Installation...
cvuqdisk-1.0.9-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

j. Aktualisierung des Bestandverzeichnisses und der Enterprise Manager Konfiguration

11

k. Abschluss des Upgrades

13

4. Anpassung der oratab

Da ich zum Wechslen zwischen Datenbank-Home und Grid-Home das Script oraenv verwende, führe ich nachträglich noch Anpassungen in der Datei /etc/oratab für das neue Grid-Home durch, auf welches das Skript oraenv zugreift.

[root@rac2 grid]# vi /etc/oratab

orcl2:/u01/app/oracle/product/11.2.0/dbhome_1:N         # line added by Agent
grid:/u01/app/11.2.0.3/grid:N
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N

5. Überprüfung der Version

[root@rac2 grid]# . oraenv
ORACLE_SID = [orcl] ? grid
The Oracle base for ORACLE_HOME=/u01/app/11.2.0.3/grid is /u01/app/oracle

[root@rac2 grid]#   crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.3.0]

[root@rac1 ~]# crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.3.0]

Upgrade der Datenbank

1. Erstellen eines neuen Datenbank-Home auf beiden Knoten.

[oracle@rac1 u01]$ mkdir /u01/app/oracle/product/ 11.2.0.3
[oracle@rac1 u01]$ ssh rac2
[oracle@rac2 u01]$ mkdir /u01/app/oracle/product/ 11.2.0.3

2. Starten des Universal Installers von Knoten rac1

[oracle@rac1 u01]$ cd /stage/11.2.0/clusterware/11.2.0.3/database/
[oracle@rac1 database]$ ./runInstaller
Oracle Universal Installer wird gestartet...

Temporärer Speicherplatz wird geprüft: muss größer sein als 120 MB.   Tatsächlich 45357 MB    Erfolgreich
Swap-Speicher wird geprüft: muss größer sein als 150 MB.   Tatsächlich 2041 MB    Erfolgreich
Monitor wird geprüft: muss so konfiguriert sein, dass mindestens 256 Farben angezeigt werden.    Tatsächlich 16777216    Erfolgreich
Vorbereitung für das Starten von Oracle Universal Installer aus /tmp/OraInstall2012-04-17_08-49-11PM. Bitte haben Sie einen Moment Geduld...[oracle@rac1 database]$

3. Durchführen der Software Installation in das neue Database-Home

 a. My Oracle Support Informationen

1

 

2

b. Auswahl Upgrade Datenbank

3

c. Auswahl der Knoten, auf denen das neue Datenbank-Home installiert werden soll.

4

 d. Auswahl der Sprachen

5

e. Auswahl der Edition

6

f. Angabe des neuen Database-Home

7

g. Überprüfung der Vorraussetzungen

8

h. Start der Installation

11

h. Ausführung des Skripts root.sh unter dem Benutzer root auf einem Knoten nach dem anderen. Erst wenn auf allen Knoten das Script erfolgreich ausgeführt wurde, kann dieser Dialog bestätigt werden.

13

Ausführung auf Knoten rac1:
oracle@rac1 ~]$ su -
Passwort:
[root@rac1 ~]# /u01/app/oracle/product/11.2.0.3/dbhome_1/root.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /u01/app/oracle/product/11.2.0.3/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

Ausführung auf Knoten rac2:
[root@rac1 ~]# ssh rac2
root@rac2's password:
[root@rac2 ~]# /u01/app/oracle/product/11.2.0.3/dbhome_1/root.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /u01/app/oracle/product/11.2.0.3/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
[root@rac2 ~]#

 4. Upgrade mit Database Upgrade Assistant DBUA

Nach Ausführung des Skripts root.sh auf allen Knoten und der Bestätigung des Dialogs startet des DBUA für das Upgrade der Datenbank automatisch.

a. Eingagsdialog des DBUA

14

b. Optionen für das Upgrade.

15

c. Ort für die Fast Recovery Area

16

d. Zusammenfassung des Upgrades

17

e. Durchführung des Upgrades

20

f. Beendigung des Upgrades

22