Saturday, May 27, 2006

Patching from 10.2.0.1 to 10.2.0.2

Today’s task is to patch from .1 to .2 on our SunOS(10) E25K, 160 gbs of ram, 20 dual core CPU’s and 18 terabytes of useable RAID 5 disks.

I would highly recommend that you do a metalink (http://metalink.oracle.com) search for: <10.2.0.2 Patch Set - Known Issues> before you get to far into this. Consider, how this search id’s Note 359415.1. This note contains important additional information for the SunOS I am dealing with. It lets me know that there is an additional OUI (Oracle Universal Installer) patch that must be installed post 10.2.0.2 and pre any other patchs (i.e. 1offs, .3, etc.). This additional patch is to correct bug 5117016. This bug causes the OUI to install the libserver10.a library into $ORACLE_HOME/rdbms/lib
instead of into $ORACLE_HOME/lib. This in-turn can cause subsequent problems when applying patches on top of 10.2.0.2. Therefore this is a Mandatory Patch and must be applied immediately after completing the installation of 10.2.0.2

I downloaded the patch set from metalink (p4547817_10202_SOLARIS64.zip) aprox. 788 mbs in size and unzip’ed it using Sun’s unzip feature.

I pointed my web browser to the README.html file that came with the patch set.

Validated that the cold backup (oracle was down during the backup) completed successfully.

I made sure that the shared_pool_size and java_pool_size were at least 150M or larger in the init.ora file.

I then shutdown the base: sqlplus “/ as sysdba” from the oracle Unix user and then by issuing a . I also shutdown the lsnr. via command.

Next I made of copy of the ../Disk1/response/patchset.rsp file in the ../Disk1/ directory to install the patch set noninteractively. And of course I edited the variables that required changing in the patchset.rsp file.
 A couple of “got-u’s” to watch for:
 One: ensure that the ORACLE_HOME and ORACLE_SID values are set in your environment.
 In the patchset.rsp template ensure you set the oracle home to your current oracle home value. For example: ORACLE_HOME="/u01/app/oracle/product/10.2.0"
 Ensure that you set the oracle home name value as follows: ORACLE_HOME_NAME="OraDb10g_home1".

Then from the ../Disk1/ directory I executed the following on the command line:
./runInstaller -silent –responseFile ../Disk1/patchset.rsp

Then executed the $ORACLE_HOME/roo.sh.

Then since this is a single-instance database I logged into sqlplus as sysdba and did a STARTUP MOUNT.

Then I entered the following SQL*PLUS commands:
1. SQL> STARTUP UPGRADE
2. SQL> SPOOL patch.log
3. SQL> start $ORACLE_HOME/rdbms/admin/catupgrd.sql
4. SQL> SPOOL OFF
5. SQL> SHUTDOWN IMMEDIATE
6. SQL> STARTUP
7. SQL> start $ORACLE_HOME/rdbms/admin/utlrp.sql

The catupgrd.sql script reexectues your catalog and catproc sql scripts. The utlrp.sql script recompiles all PL/SQL invalid packages now instead of when the packages are accessed for the first time.

Now I can restart the lsnr and turn the user loose again; only now on a 10.2.0.2 instance!

1 comment:

sedwardba said...

Hey Sam. Boy, your blog is great. Again, you have inspired me and now I'm working on my own. http://sedwardba.blogspot.com. My only concern is not sharing stuff from work. You are a great mentor for me. Thanks