系统平台: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
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
解决办法:
将patch 进行回滚:opatch -rollback -id 9655027
从相同平台、相同版本的库上拷贝缺失的文件到目标位置,apply patch 成功