oracle9206升级至9208 apply patch 遇到的问题记录

3600阅读 0评论2018-03-29 lzp_0004
分类:SOLARIS


系统平台: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

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  到目标库相应目录

上一篇:solaris vbs巡检脚本
下一篇:rman删除旧的归档日志问题