系统平台: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 parameter cpu_count', it returns a value of 32 or greater.
SQL> show parameter cpu_count;
NAME
TYPE
VALUE
------------------------------------ -----------
------------------------------
cpu_count integer
128
Cause
This is ORA-600 [504] DURING FLUSH SHARED_POOL
closed as a duplicate of
Base 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 is equal to 0 (default value), if the cpu_count is >=32 the bug still applies.
This is due to the as the _kgl_latch_count default value is calculated as next prime number after the value returned by cpu_count. So, this bug could still apply if the cpu_count=32 as the _kgl_latch_count would be calcuated to the next prime number would be 37.
Solution
1. Upgrade to the 10.2.0.4 patchset or the 11g release.
OR
2. You can use workaround of
setting parameter _kgl_latch_count <= 31 in your
pfile/spfile.
(please note
that this may adversely affect the concurrency)
OR
3. If available for your
platform/version, download and apply
在进行补丁应用时发现有报错:
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 成功