一、何为 Row Cache Enqueue 锁?
行缓存(Row Cache)或数据字典缓存(Data Dictionary Cache)是保存数据字典信息的共享池的内存区域。 row cache 保存数据时并不是以数据块的形式,而是以行的形式。row cache enqueue 锁是在数据字典行的锁。此 enqueue 是关于特定数据字典对象的。这就是所谓的 enqueue 类型,可以在视图 V$rowcache 中找到。官方给出的获取该锁信息的脚本:
set pages 1000 column cache# format 99999 column name format a33 column latch# format 999999 select distinct s.kqrstcln latch#,r.cache#,r.parameter name,r.type,r.subordinate# from v$rowcache r,x$kqrst s where r.cache#=s.kqrstcid order by 1,4,5;
二、"WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!" 警告信息是什么意思?
当试图去获得 row cache 锁时,这种等待事件将被使用。 当 row cache 冲突发生时,如果不能在一个预定的时间周期内得到 enqueue,将在user_dump_dest 或 background_dump_dest 目录下生成一个跟踪文件( 这两个目录的选择取决于是用户还是后台进程创建的跟踪文件。alert.log 通常会相应的更新警告消息和跟踪文件的位置)。 数据库检测到核心资源被持有太久并通知DBA,从而让这种情况可以得到解决。这也可能使数据库挂起或变慢alert.log 的消息和生成的跟踪文件包含以下信息:
> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! <<<
如果不能立即获取 rowcache entry 锁,那么进入一个循环,先释放 row cache 对象闩锁,等待上述等待事件,重新获得闩锁,然后再次尝试获取 rowcache 锁。在单实例模式,会重复 1000次直到进程报错“WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK”。在 RAC 环境会一直重复,直到不能获得实例锁或者被中断。Systemstate dump 可以提供一些有用的信息诊断争用的原因。 注:The "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!" 当达到阈值会引发这个消息,因此, 如果未达到阈值它不会被引发。由此可知,对于不太严重的问题,即使具有相同的原因,也可以不输出该消息。
编辑推荐:
- 【ASK_ORACLE】Row Cache Enqueue锁之概念篇03-03
- 阿里主动改革,再次引领国内公司治理新浪潮03-03
- 监控视频压缩存储可以为政府行业带来什么好处?03-03
- 用友nc软件系统服务器被locked1勒索病毒攻击后怎么办如何解密恢复?03-03
- 视频压缩存储可以给油田带来什么好处03-03
- 视频压缩存储可以为油田带来哪些好处03-03
- 小程序微短剧,只是昙花一现?03-03
- 海康、快仓的机器人增长法则:谋上市、强技术、勤出海03-03
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
