The first surprise is given by the download page from the oracle support site (formally know as Oracle Metalink). The 18.104.22.168 patch set has 4.8G! WTF?! Furthermore, it is split in 7 pieces... Despite of this huge size, the good thing is that, unlike the previous releases, this patch-set may be used as a self-contained Oracle installer, which means you don't have to install a base 22.214.171.124 release and, after that, to apply the 126.96.36.199 patch-set on top of it, but you may simply install the 188.8.131.52 release directly. There's one more catch: if you want to upgrade just the Grid Infrastructure you don't need all 7 pieces from the patch-set. On the download page is not very clear mentioned but if you have the curiosity to open the README (and you should!) then you'll find the following:
The second surprise is the fact that the GI cannot be in-place upgraded. In previous releases we used to patch providing an existing home location. Starting with 184.108.40.206 in-place upgrades for GI are not supported. According to the "Upgrade" guide:
As of Oracle Database 11g release 2 (11.2), the Oracle Clusterware software must be upgraded to a new home location in the Oracle grid infrastructure home. Additionally, Oracle ASM and Oracle Clusterware (and Oracle Restart for single-instance databases) must run in the same Oracle grid infrastructure home. When upgrading Oracle Clusterware to release 11.2, OUI automatically calls Oracle ASM Cluster Assistant (ASMCA) to perform the upgrade into the grid infrastructure home.
Okey, good to know! Let's start the upgrade process of GI. The wizard provided by the OUI is quite intuitive therefore I will not bother you with screenshots and other obvious things. However, the next surprise comes when you are running the
rootupgrade.shscript. The error is:
Failed to add (property/value):('OLD_OCR_ID/'-1') for checkpoint:ROOTCRS_OLDHOMEINFO.Error code is 256 The fixes for bug 9413827 are not present in the 220.127.116.11 crs home Apply the patches for these bugs in the 18.104.22.168 crs home and then run rootupgrade.sh /oragi/perl/bin/perl -I/oragi/perl/lib -I/oragi/crs/install /oragi/crs/install/rootcrs.pl execution failedWTF? You cannot patch if you don't have another stupid patch already there. Okey, as an Oracle DBA you have to be a patient guy... take a deep breath and start looking for bug 9413827. First of all there is the 10036834.8 note, which basically says that you might still get this error even if you apply the patch for the 9413827 bug. As an workaround they suggest to also apply the patch for 9655006 bug. That's madness! In the end it turns out that 9655006 patch is actually the July 10.2.0.1.2 PSU. Okey, just download the appropriate version for your platform. Now, another surprise... you need an updated version of OPatch utility. Damn it! Back to metalink, search for patch 6880880 and download the 22.214.171.124.0 version for your platform (Take care not to download the wrong version. By the way, did you noticed that you may download a wget script which can be used to download the patch without using a browser? Yea, finally something good on that shitty flash GUI.) According to the README they suggest to unzip the upgraded OPatch utility directly into your CRS home, using something like:
unzip [p6880880...zip] -d [your GI home]... which I did!
Now, you have to unzip the PSU patch into an empty folder, let's say /u01/stage, and run the following command as root:
In my case, the output was:
/OPatch/opatch auto /u01/stage/ -och [your GI home]
Executing /usr/bin/perl /u01/app/126.96.36.199/grid/OPatch/crs/patch112.pl -patchdir /u01 -patchn stage -och /u01/app/188.8.131.52/grid/ -paramfile /u01/app/184.108.40.206/grid/crs/install/crsconfig_params 2010-12-08 12:32:19: Parsing the host name 2010-12-08 12:32:19: Checking for super user privileges 2010-12-08 12:32:19: User has super user privileges Using configuration parameter file: /u01/app/220.127.116.11/grid/crs/install/crsconfig_params The opatch Component check failed. This patch is not applicable for /u01/app/18.104.22.168/grid/ The opatch Component check failed. This patch is not applicable for /u01/app/22.214.171.124/grid/ Patch Component/Conflict check failed for /u01/app/126.96.36.199/grid/Upssy! Another surprise! This patch is not applicable for bla bla bla? Are you serious? Let's check the logs. They should be in your $CRS_HOME/cfgtoollogs. Search for a log file named as
opatchauto[timestamp].log. The important part for the log:
2010-12-08 12:32:19: The component check failed with following error 2010-12-08 12:32:19: bash: /u01/app/188.8.131.52/grid/OPatch/opatch: Permission deniedHa? I'm root! Aaaa... okey! Apparently it tries to run the OPatch tool under the grid user. Okey, let's fix the permissions.
chown root:oinstall /u01/app/184.108.40.206/grid/OPatch -R chmod g+r /u01/app/220.127.116.11/grid/OPatch/opatchNow, try again! Yeap... now it's working.
After applying the patch we are ready for our
rootupgrade.sh. It's interesting that the output still contains the
Failed to add (property/value):('OLD_OCR_ID/'-1')message but the upgrade continues without any other complaints. Okey, let's perform a quick check:
srvctl config asm ASM home: /u01/app/18.104.22.168/grid ASM listener: LISTENER srvctl config listener -a Name: LISTENER Network: 1, Owner: grid Home:Great, the ASM and listeners are relocated to the new GI home. The next logical thing to do is to uninstall the old GI home, right? It's as simple as:
/u01/app/22.214.171.124/grid on node(s) owl End points: TCP:1521
Oookey, meet SURPRISE Number 6:
ERROR: You must delete or downgrade the Oracle RAC databases and de-install the Oracle RAC homes before attempting to remove the Oracle Clusterware homes.Isn't it great? On metalink I found Bug 10332736 and, on the WORKAROUND section, it says something about writing a note with a manual uninstall procedure. However, at the time of writing this, the note wasn't published yet. Yea... all I can say is that I'm tired of these stupid issues. What happend with the Oracle testing department? They encourage to patch frequently but, as far as I'm concerned, I always have this creepy feeling before doing it.