Wednesday, July 11, 2007

Applying Patchset 10.2.0.3 - A Warning

I will soon be installing Oracle Database 10g 10.2.0 at several customer locations, so I began going through our local installation procedures using an old Pentium III single CPU with 512MB RAM running Windows 2000. Thought it might be a good idea to apply the 10.2.0.3 patchset. No problems until I got to these post-installation instructions:

Determine the current values of these parameters:
SQL> SHOW PARAMETER SHARED_POOL_SIZE
SQL> SHOW PARAMETER JAVA_POOL_SIZE
So I ran the commands and got the following response:

NAME TYPE VALUE
------------------------------------ ----------- -----
shared_pool_size big integer 0

NAME TYPE VALUE
------------------------------------ ----------- -----
java_pool_size big integer 0
Hmmm. . . 0, as in ZERO. So I followed the next step in the readme:

If the system is using a server parameter file: If necessary, set the value of the SHARED_POOL_SIZE initialization parameter to at least 150 MB:

SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;

If necessary, set the value of the JAVA_POOL_SIZE initialization
parameter to at least 150 MB:


SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;

I executed the above commands without errors, and then attempted to start the database in upgrade mode. This was the response I got:

SQL> startup upgrade
ORA-00821: Specified value of sga_target 160M is too small, needs to be at least 320M
The readme addresses this error:

Note:

The value of the SGA_TARGET parameter depends on the environment. If you receive a system error when you restart the database, increase the value of the SGA_TARGET parameter to the value specified in the error.
So I tried to start the instance using the nomount option:

SQL> startup nomount

ORA-00821: Specified value of sga_target 160M is too small, needs to be at least 320M
I went ahead and tried setting the SGA_TARGET parameter anyways:

SQL> alter system set sga_target='320m' scope=spfile;
alter system set sga_target='320m' scope=spfile
*
ERROR at line 1:
ORA-01034: ORACLE not available
Okay, let's use the pfile I made before applying the patchset (and successfully started the database with):

SQL> startup pfile=D:\oracle\foobardb_init.ora
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1289484 bytes
Variable Size 88081140 bytes
Database Buffers 71303168 bytes
Redo Buffers 7098368 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
Looks like it's well and truly hosed. I could spend several hours (more likely days) on the OTN forums and Metalink looking for a fix, or I could wipe Oracle from the registry, delete the ORACLE_HOME from the hard drive, and re-install the database saving myself hours (likely days) of confusion and frustration.

I don't know what I did wrong. The SHARED_POOL_SIZE and JAVA_POOL_SIZE parameters returned values of 0. Did I really need to alter them to run the catupgrd.sql script?

But if anyone out there does know what went wrong, I'd be interested to know.

Labels: ,