cursor_sharing=force导致的ora-600错误的分析

1、在alert_lxdb.log日志中报600错误
Errors in file /u01/app/oracle/admin/lxdb/udump/lxdb_ora_50379.trc:
ORA-00600: internal error code, arguments: [kkslhsh1], [101], [], [], [], [], [], []
注意这个问题可能会导致产生非常大的trc 文件而导致 文件系统满!


2、本问题的产生根本原因: 设置了 cursor_sharing = force

目前看起来虽然系统没有这样设置但是 应用里面极可能设置了: alter session set cursor_sharing = force 。
因为从v$sqlarea中提取出的sql可能一看出来,现在查询 v$sqlarea.version_count的最大值是485,来自metalink 的bug 列表中显示,当这个数字大于100的时候 就可能导致问题。

SQL> select max(version_count) from v$sqlarea;

MAX(VERSION_COUNT)
------------------
               485



3、解决办法暂时有三种:
(1)升级数据库到9.2.0.6的版本,如果设置 cursor_sharing = similar会导致inser ... select ..发生问题,则需要9.2.0.8才能解决。
(2)修改应用,去掉alter session 而使用绑定变量。

(3)周期性的暂时 alter system flush shared_pool,目前这样几小时一次或许可以临时解决问题。



**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:        252803295

Email:    [email protected]

Blog:      http://blog.csdn.net/guoyJoe

ITPUB:   http://www.itpub.net/space-uid-28460966.html

OCM:     http://education.oracle.com/education/otn/YGuo.HTM
 _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036


你可能感兴趣的:(cursor_sharing=force导致的ora-600错误的分析)