【MOS】诊断 ’library cache: mutex X’ 等待 (Doc ID 2331144.1) Troubleshooting 'library cache: mutex X' Waits. (Doc ID 1357946.1)

0    201    1

Tags:

👉 本文共约4395个字,系统预计阅读时间或需17分钟。

诊断 ’library cache: mutex X’ 等待 (Doc ID 2331144.1)

Troubleshooting 'library cache: mutex X' Waits. (Doc ID 1357946.1)

适用于:

Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Backup Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台

用途

本文档旨在说明 library cache: mutex X 等待诊断思路。

排错步骤

我们先要了解什么是 library cache: mutex X?

该机制是用于保护内存结构,在 library cache 中有许多内存结构需要 library cache: mutex X 的保护。

library cache 用来保存解析过的 cursor 相关的内存结构。

等待 library cache: mutex X 与之前版本的 latch:library cache 等待相同。library cache: mutex X 可以被很多因素引起,例如:(包括应用问题,执行计划不能共享导致的高版本的游标等),本质上都是某个进程持有 library cache: mutex X 太长时间,导致后续的进程必须等待该资源。如果在 library cache 的 latch 或者 mutex 上有等待,说明解析时有很大的压力,解析 SQL 的时间变长(由于 library cache 的 latch 或者 mutex 的等待)会使整个数据库的性能下降。

由于引起 library cache: mutex X 的原因多种多样,因此找到引起问题的根本原因很重要,才能使用正确的解决方案。

引起 library cache: mutex X 等待的原因主要有哪些呢?

  • 大量的硬解析:过于频繁的硬解析,会导致该等待。

  • 高版本的游标:当发生 High version count 时,大量的子游标需要检索,从而会引起该等待。

  • 游标失效:游标失效是指,保存在 library cache 中的游标由于不可用,而从 library cache 中删除。游标失效是指某些改变导致内存中的游标不再有效。例如:游标相关对象的统计信息搜集;游标关联表,视图等对象的修改等。发生游标失效会导致接下来的进程需要重新载入该游标。当游标失效过多时,会导致 'library cache: mutex X' 等待。

  • 游标重新载入:游标重新载入是指本来已经存在于 library cache 中,但是当再次查找时已经被移出 library cache(例如:由于内存压力),这时就需要重新解析并且载入该游标。游标重新载入操作不是一件好事,它表明您正在做一件本来不需要做的事情,如果您设置的 library cache 大小适当,是可以避免游标重新载入的。游标重新载入的时候是不可以被进程使用的,这种情况会导致 library cache: mutex X 等待。

  • 已知的 Bug。

12C 及更高版本等待事件命名

12c 以后该等待又被细分为如下:

* library cache: mutex X – 用于保护 handle。

* library cache: bucket mutex X – 用于保护 library cache 中的 hash buckets。

* library cache: dependency mutex X – 用于保护依赖。

如何诊断 library cache: mutex X 等待?

  1. 确认是否存在一些改变:

    a. 负载是否增长?
    b. 是否有应用、操作系统、中间件的改变?

  2. 该等待的出现的趋势:

    a. 确认该等待是否在每天的固定时刻产生?
    b. 是否做了一些操作触发该等待?

  3. 生成问题发生时刻的 AWR 和 ADDM 报告,与基线或者正常时间段的 AWR 和 ADDM 报告比较,是否有负载,参数等的改变和不同。

使用如下脚本生成问题发生时的半小时到一小时区间的 AWR 和 ADDM 报告:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复