library cache lock/pin

2024-03-04 09:44
文章标签 cache lock library pin

本文主要是介绍library cache lock/pin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【故障现象】
某些session执行操作被堵塞,检查event发现’library cache lock/pin’等待;

【可能故障原因】
library cache lock/pin发生在多个session对相同library cache对象进行争用发生,一般来说在存储过程编译过程中发生并堵塞编译。

【应急措施】
堵塞和被堵塞session在同一个实例上:
查找导致library cache lock/pin的对象;

SELECT KGLNAOWN,KGLNAOBJ
FROM x$kglob 
WHERE kglhdadr in( 
select P1RAW from v$session_wait where event like 'library cache%');

继续查找那些session导致了library cache lock/pin等待:

select sid, serial#,program ,machine from v$session 
where paddr in (
SELECT s.paddr FROM x$kglpn p, v$session s
WHERE p.kglpnuse=s.saddr(+) AND p.kglpnmod <> 0 and kglpnhdl in ( 
select p1raw  from v$session_wait 
where event in ('library cache pin','library cache lock' ,'library cache load lock')));

注: 如果上述SQL时间执行时间较长,可手动分步执行,如先执行IN中的子SQL。

根据实际情况严重程度进行如下紧急处理:
a)对所有导致library cache lock/pin的session进行kill,解决堵塞情况。

堵塞和被堵塞session不在同一个实例上:
查找导致library cache lock/pin的对象;(同情况1)

SELECT KGLNAOWN,KGLNAOBJ
FROM x$kglob 
WHERE kglhdadr in( 
select P1RAW from v$session_wait where event like 'library cache%');

在其他实例上陆续进行查找导致了library cache lock/pin等待的session,首先确认其他实例上的堵塞对象的地址,参考上面查询结果:

select sid, serial#, sql_text from dba_kgllock w, v$session s, v$sqlarea a
where w.kgllkuse = s.saddr and w.kgllkhdl in(
select kglhdadr from x$kglob where kglnaown='SYS' and kglnaobj = 'DUMMY')
and s.sql_address = a.address
and s.sql_hash_value = a.hash_value;

根据实际情况严重程度进行如下紧急处理:
a)对所有导致library cache lock/pin的session进行kill,解决堵塞情况。
注意在os级别kill之前,先用ps命令查看一下该进程,如果是DB进程,不可随意kill,否则会导致系统crash

【后续分析】
此类问题主要是由于并发执行对象编译导致的,解决思路就是将编译动作串行执行,减少并发争用。同时,后续需要查询此类操作为什么发起,在业务高峰期应当避免。

这篇关于library cache lock/pin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772782

相关文章

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

PIL Python Imaging Library (PIL)

介绍         把Python的基础知识学习后,尝试一下如何安装、加载、使用非标准库,选择了图像处理模块PIL。         Python Imaging Library (PIL)是PythonWare公司提供的免费的图像处理工具包,是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不

Android studio jar包多层嵌套,Add library '__local_aars__:...@jar' to classpath问题

在添加jar包,早app下的build.gradle中的 implementation files('libs/jar包的名字.jar') 修改为 api files('libs/jar包的名字.jar') implementation 单层引用,只引用当前jar包层, api 多层引用,应用当前jar包层,已经jar包引用的jar包层

[项目][CMP][Thread Cache]详细讲解

目录 1.设计&结构2.申请内存3.释放内存4.框架 1.设计&结构 Thread Cache是哈希桶结构,每个桶是一个按桶位置映射大小的内存块对象的自由链表 每个线程都会有一个Thread Cache对象,这样每个线程在这里获取对象和释放对象时是无锁的 TLS – Thread Local Strorage Linux gcc下TLSWindows vs下TLS

How can I provide a RGBA png file to OpenAI PHP library

题意:将RGBA PNG文件提供给OpenAI的PHP库 问题背景: I import Orhanerday\OpenAi library to my DALL-E Examples project but when I provide images, I got Invalid input image - format must be in ['RGBA'], got RGB. er

[项目][CMP][Central Cache]详细讲解

目录 1.设计&结构2.申请内存3.释放内存4.框架 1.设计&结构 Central Cache也是一个哈希桶结构,它的哈希桶的映射关系跟Thread Cache是一样的不同的是它的每个哈希桶位置挂的是SpanList链表结构(带头双向循环链表),不过每个映射桶下面的span中的大内存块被按映射关系切成了一个个小内存块对象挂在span的自由链表中 8Byte映射位置下面挂的是

【硬刚Java并发】JUC基础(六):Lock 同步锁

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Java并发部分补充。 显示锁 Lock 在 Java 5.0 之前,协调共享对象的访问时可以使用的机制只有 synchronized 和 volatile 。Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。 ReentrantLock 实