背景

某项目alert日志中偶然报错如下:

ORA-00600: internal error code, arguments: [KGL-heap-size-exceeded]

报错的过程中业务变慢,业务处理tps几乎为0,且大量产生cdmp core文件导致/oracle目录爆满

一会业务恢复正常,但是高峰期又反复出现类似问题

问题排查:

检查故障时间点的awr,发现shared pool相关的等待很严重,怀疑故障时刻shared pool的占用很大

且KGL占用9G+

发现报错的sqlsql version count数达到了900+(_cursor_obsolete_threshold设为1024),查看version count高的原因

select c.sql_id,
c.SQL_TYPE_MISMATCH,
c.BIND_EQUIV_FAILURE,
b.POSITION,
b.DATATYPE_STRING,
b.LAST_CAPTURED
from V$SQL_BIND_CAPTURE b, v$sql_shared_cursor c
where c.CHILD_ADDRESS = b.CHILD_ADDRESS
and c.SQL_ID = '9pvt6prqzddvy';

发现BIND_EQUIV_FAILURE为Y,导致cursor无法共享

首先这个环境的sga为128G,shared_pool设置了20G,的确有点小了,Shared Pool Statistics占用已达到90%左右,将shared_pool调整到40g,故障不再出现,但是上面的sql的version count仍旧很高,尝试将_cursor_obsolete_threshold减少到50(之前害怕硬解析增高没有调小),version count问题得到缓解。

后来查询mos,发现BIND_EQUIV_FAILURE 可能是12.2的bug(2610645.1),解决方案:

打上 Patch 28794230

使用如下的workaround:

alter system set "_optimizer_use_feedback"=false scope=spfile;
alter system set "_optimizer_adaptive_cursor_sharing"=false scope=spfile;
alter system set "_optimizer_extended_cursor_sharing_rel"=none scope=spfile;
alter system set "_optimizer_use_feedback"=false;
alter system set "_optimizer_adaptive_cursor_sharing"=false;
alter system set "_optimizer_extended_cursor_sharing_rel"=none;

由于故障不再出现,没有参考上面的解决方法

ORA-00600: internal error code, arguments: [KGL-heap-size-exceeded]相关推荐

  1. oracle ora 13011,ORA-00600: internal error code, arguments: [13011]

    近期,一客户历史数据库屡次遇到ORA-00600: internal error code, arguments: [13011].附带的,还有ORA-01499 SQL> analyze ta ...

  2. Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...

    Toad 10.6 去查Oracle 10g 的表空间,在Toad 返回页面提示信息是: selectprivileges on following are required:DBA_DATA_FIL ...

  3. ORACLE 启动报错 ORA-00600: internal error code, arguments

    虚拟机突然关闭后,启动数据库,报错: ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [44], ...

  4. 使用DBLINK查询时报ORA-00600: internal error code, arguments: [kzdlk_zt2 err]

    使用DBLINK查询时报ORA-00600: internal error code, arguments: [kzdlk_zt2 err]  SYS@oradg11g > select INS ...

  5. internal error code, arguments: [13013], [5001], [8943】

    记录另一起ORA-00600[13013]处理 发现ORA-00600[13013]错误 During the execution of an UPDATE statement, after seve ...

  6. oracle在服务器断电重启后启动报错ORA-00600: internal error code, arguments: [kcm_headroom_warn_1], []

    一.错误场景介绍. 数据库:11.2.0.4(单实例,没有任何备份) 系统:Centos 6.5(虚拟机) 由于机房断电导致oracle数据库(单实例)所在服务器的虚拟服务器出现问题,在经过恢复后虚拟 ...

  7. 删除数据报ORA-00600: internal error code, arguments: [ktbesc_plugged]

    Oracle在删除数据是以下错误: ORA-00600: internal error code, arguments: [ktbesc_plugged], [], [], [], [], [], [ ...

  8. ORA-00600: internal error code, arguments: [kgl-no-mutex-held]

    一.环境windowsoracle 11.2.0.4 RAC 二.问题现象1.连接数据库后,无法查询2.报错信息:ORA-00600: internal error code, arguments: ...

  9. 解决ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]错误

    机房环境: OS:windows 2008 数据库版本:oracle 11g 事件起因: 昨天公司运维说机房的HP服务器磁盘坏了,我当时冷汗一下子就出来了,因为这是测试库,没有备份,没有归档,但是里面 ...

最新文章

  1. [原创]Coding4Fun检测你的网络,用C#获取本机TCP、UDP状态及连接(二)
  2. Linux的文件管理
  3. mysql闪退或者can not connect 127.0.0.1
  4. python axis 0_axis=0在sum()和dropna()中的行为似乎不同
  5. 会计科目登错怎么更正
  6. linux vim(gvim) 多标签页,Vim 的标签页功能
  7. 干的漂亮!一夜之间GPS在南海信号全无,美军只能干瞪眼
  8. (day 15 - 双指针)剑指 Offer 18. 删除链表的节点
  9. ubuntu14上安装ros教程
  10. 移远ec20 openLinux交叉编译python
  11. Python 文件路径
  12. VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (1) 介绍
  13. 王春亮推拿学堂:如何成为一名高级调理师
  14. 计算机专业论文评语,计算机毕业论文评语
  15. 反转一个英语句子c++
  16. javaScript -- touch事件详解(touchstart、touchmove和touchend)
  17. 某计算机系统20位地址线 8位数据线,同济大学2009-2010(1)微机原理期终试题(A B卷)含答案.doc...
  18. 转行网络工程师,软考和华为认证选哪个?
  19. 南阳理工学院计算机科学与技术分数线,2017南阳理工计算机科学与技术分数
  20. vue项目接入阿里云智能验证

热门文章

  1. 网易Java面试必问:月薪20k+的Java面试都问些什么
  2. 小米商城下载APP页面
  3. 仿照美团用并查集实现迷宫
  4. Locality Sensitive Hashing原理与实现
  5. 平台活动免费送,免费领取1个月优酷/爱奇艺/腾讯视频会员
  6. Win7+AMD+VS2013+opencl1.x安装与测试
  7. 翻译GDC演讲《精心制作一个微小的开放世界:‘A Short Hike‘ 事后分析》(3):关卡设计
  8. C# 高仿腾讯QQ (窗口皮肤美化)(附测试源码)
  9. 日本早稻田大学的研究人员,使用AI给黑白照片着色
  10. 用于快速Web开发的5大Python Web框架