首页 > 其他分享 >library cache lock故障分析

library cache lock故障分析

时间:2023-09-15 18:40:41浏览次数:35  
标签:lock 数据库 cache library SQL 解析

  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故障分析_等待事件_02

  6. 通过查询82对应的具体library cache操作类型为“SQL AREA BUILD”
  7. library cache lock故障分析_10035 event_03

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

标签:lock,数据库,cache,library,SQL,解析
From: https://blog.51cto.com/u_13482808/7484252

相关文章

  • Launcher3 中 IconCache 缓存逻辑
    概述我们先看下IconCache的初始化过程,接着看下IconCache核心数据结构、算法,最后介绍与之关联的几个类。Launcher.javapublicclassLauncherextendsStatefulActivity<LauncherState>implements...{...publicstaticfinalStringTAG="Launcher";privateLau......
  • WSL 炼丹报错:Could not load library libcudnn_cnn_infer.so.8. Error: libcuda.so: c
    确认驱动没问题(nvidia-smi可以正常使用)解决办法参照:https://github.com/pytorch/pytorch/issues/85773#issuecomment-1288033297内容如下:......
  • block中真实存储的数据oracle
    概念描述通常数据库的一张表会存储number、char等等类型的数据,这些数据通过select查询就能被人所识别,但是Oracle数据库存储这些数据的时候却不会“明文”存储。如果我们能把表对应的dbf表空间文件下载下来,再通过一些转换手段将dbf中的数据块内容转换成人能识别的“明文”,但首先必须......
  • 天翼云存储资源盘活系统HBlock,全面释放企业数据价值
    9月6日,天翼云与科技媒体InfoQ联合举办的以“存储难题新解法,揭秘极/致易用的HBlock”为主题的线上技术分享会圆满落幕。天翼云国际业务事业部研发专家武志民与存储产品线总监魏玮以“天翼云存储资源盘活系统HBlock,深挖独创技术亮点与实战演练”为主题,分享了HBlock在安装部署、数据......
  • app测试日常踩坑——gocache缓存的过期时间和生成间隔问题
    问题:自动化监控平台添加的分类详情页的接口报错,分类详情页校验失败,看到的错误信息是接口响应错误,信息如下:{"errors":{"id":"0","code":"44010102","level":"1","status":"200","title":"参数错误","popup......
  • 天翼云存储资源盘活系统HBlock,全面释放企业数据价值
    9月6日,天翼云与科技媒体InfoQ联合举办的以“存储难题新解法,揭秘极致易用的HBlock”为主题的线上技术分享会圆满落幕。天翼云国际业务事业部研发专家武志民与存储产品线总监魏玮以“天翼云存储资源盘活系统HBlock,深挖独创技术亮点与实战演练”为主题,分享了HBlock在安装部署、数据可......
  • 更改Eclipse下Tomcat的部署目录和自定义user library
     更改Eclipse下Tomcat的部署目录http://kingxss.iteye.com/blog/1741438自定义userlibrary......
  • Memcached深入学习总结
    在上一家公司时,产品主要使用memcached做缓存。虽然目前这家公司memcached使用的比较少(刚进公司做云存储相关服务时小规模使用了一下,后来做另一个系统时换redis做了缓存),但前几天整理资料时看到了原先写的memcached相关笔记,在此整理一下发上来。----------------------------------......
  • Java多线程____BlockingQueue阻塞队列使用
    packagecom.frame.base.thread;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.ArrayBlockingQueue;/***并发编程____阻塞队列*/publicclassBlockingQueueTest{ publicstaticvoidmain(String[]args)throwsInterruptedException{......
  • RSA加密 too much data for RSA block
    场景:RSA加密//RSA加密 这样处理byte[]bytes=ci.doFinal(data.getBytes(StandardCharsets.UTF_8));returnBase64.getEncoder().encodeToString(bytes);//解密时这样处理byte[]bytes=ci.doFinal(Base64.getDecoder().decode(base64Data));returnnewString(bytes);......