系统平台:solaris sparc
oracle从9.2.0.6升级到9.2.0.8版本:
   在通过图形升级至9208后,在准备升级数据字典时遇到的bug:修改java_pool_size参数后,shutdown 库时会出现报错ORA-00600: internal error code, arguments: [504], [0x380068D90], [160],[7], [shared pool], [2], [0], [0x380068CA0],经查是oracle的bug需要升级或打patch解决。

The following query returns _kgl_latch_count >31

SQL> select a.ksppinm aa, b.ksppstvl bb
from x$ksppi a, x$ksppsv b
where a.indx=b.indx
and a.ksppinm like '%latch%count%';

OR

the query may return query return that_kgl_latch_count is 0, but when issuing a 'show parametercpu_count', it returns a value of 32 or greater.

SQL> show parameter cpu_count;

NAME                                           TYPE       VALUE
------------------------------------ -----------------------------------------
cpu_count                                       integer       128

Cause

This is Bug 5888835 ORA-600 [504] DURING FLUSH SHARED_POOL
closed as a duplicate of
Base Bug 5508574  ORA-00600 [99999] , ORA-07445[KGSCDUMP()+673]

The latch directory size exceeds 255 when _kgl_latch_count> 31.

However, even when the _kgl_latch_count isequal to 0 (default value), if the cpu_count is >=32the bug still applies.

This is due to the as the_kgl_latch_count default value is calculated asnext prime number after the value returned by cpu_count. So, thisbug could still apply if the cpu_count=32 as the_kgl_latch_count would be calcuated to the nextprime number would be 37.

Solution

1.  Upgrade to the 10.2.0.4patchset or the 11g release.

OR

2. You can use workaround ofsetting parameter _kgl_latch_count <= 31 in yourpfile/spfile.
    (please notethat this may adversely affect the concurrency)

OR

3.   If available for yourplatform/version, download and apply Patch 5508574


在进行补丁应用时发现有报错:
opatch apply

Running make for target client_sharedlib.
dateOPatch found the word "fatal" in stderr, please look into it.
You may have to run the make again.
Stderr Output (from /rdata/oracle/app/oracle/product/9.2.0/.patch_storage/9655027/make_local.stderr):
ar: creating /rdata/oracle/app/oracle/product/9.2.0/lib/libclntst9.a      
ar: creating /rdata/oracle/app/oracle/product/9.2.0/lib32/libclntst9.a    
ld: fatal: file /rdata/oracle/app/oracle/product/9.2.0/lib/WS6U2/lib/v9/CCrti.o: open failed: No such file or directory
ld: fatal: file /rdata/oracle/app/oracle/product/9.2.0/lib/WS6U2/lib/v9/CCrtn.o: open failed: No such file or directory
ld: fatal: File processing errors. No output written to /rdata/oracle/app/oracle/product/9.2.0/lib/libocci.so.9.0 
Running make for target ioracle.

解决办法:
将patch 进行回滚:opatch -rollback -id 9655027
从相同平台、相同版本的库上拷贝缺失的文件到目标位置,apply patch 成功
拷贝$ORACLE_HOME/lib/WS6U2/lib/v9/CCrti.o $ORACLE_HOME/lib/WS6U2/lib/v9/CCrtn.o  到目标库相应目录

11-20 03:42