library cache lock故障分析
  IE5LYMWlmdvL 2023年11月02日 55 0
  1. 现象
    客户数据库在每周五出现大量的“library cache lock”等待事件,数据库业务办理失败。
  2. 问题分析
    从ASH视图我们可以发现,数据库从9:01分开始出现“library cache lock”等待事件。
  3. library cache lock故障分析_library cache lock

  4. 如上图,等待事件中P3TEXT 对应的是100*mode+namespace,对于的P3RAW十六进制值为52002。namespace 52转为相应的十进制为82,mode为2。
  5. library cache lock故障分析_library cache lock_02

  6. 通过查询82对应的具体library cache操作类型为“SQL AREA BUILD”
  7. library cache lock故障分析_等待事件_03

  8. library cache lock中“SQL AREA BUILD”对应的原因大部分都是SQL解析失败的原因导致。通过在测试数据库对该问题进行测试重现,在v$sysstat视图可以看到数据库有明显的SQL解析错误的情况。
  9. library cache lock故障分析_library cache lock_04

  10. 通过设置10035 event将解析错误的SQL打印到alert日志,找出具体的解析错误SQL。
    ALTER SYSTEM SET EVENTS ‘10035 trace name context forever, level 1’;

library cache lock故障分析_10035 event_05


我们可以看到,存在较多的解析错误的SQL,通过业务人员修复存储过程对应的错误后,再次在测试库进行相应的测试,数据库没有再出现“library cache lock”类等待事件。由此可以证明,数据库出现的大量“library cache lock”是由于存储过程语法出现错误,数据库无法进行正确的SQL解析导致。

另外数据库还存在较多的硬解析。每秒有640的硬解析次数,建议联系业务将未使用绑定变了的SQL进行绑定变量处理。

library cache lock故障分析_10035 event_06

  1. 结论与建议
    1、 业务修复生产库已存在错误的存储过程语句,可在后续该业务高峰期观察数据库等待事件,如果仍存在问题,可以再次打开10035 event,将问题修复。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

IE5LYMWlmdvL