业务系统数据库夯住,数据库内大量的library cache: mutex X及latch: shared pool等待,alert日志信息如下

Tue Sep  ::
WARNING: inbound connection timed out (ORA-)
Tue Sep ::
WARNING: inbound connection timed out (ORA-)
Tue Sep ::
WARNING: inbound connection timed out (ORA-)
Tue Sep ::
WARNING: inbound connection timed out (ORA-)

数据库历史session统计如下

                                               latch: shared pool
library cache: mutex X
library cache: mutex X
6hurnha5k9qb6 latch: shared pool
latch: shared pool
0rs4yunhszr7w latch: shared pool
b7fy2a0snpja9 library cache: mutex X
null event
latch: shared pool
0rs4yunhszr7w latch: shared pool
library cache: mutex X
6hurnha5k9qb6 latch: shared pool
b7fy2a0snpja9 library cache: mutex X
latch: shared pool
library cache: mutex X
null event
latch: shared pool
latch: shared pool
0rs4yunhszr7w latch: shared pool
b7fy2a0snpja9 library cache: mutex X
6hurnha5k9qb6 latch: shared pool
library cache: mutex X
library cache: mutex X

阻塞会话明细

SQL>  select event,sql_id,USER_ID,program   from gV$active_session_history a where INST_ID= and SESSION_ID=  and to_char(a.sample_time, 'yyyymmddHH24mi')=;
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002)
latch: shared pool 6hurnha5k9qb6 oracle@ZJHZ-px-xxx- (J002) SQL> select event,sql_id,USER_ID,program from gV$active_session_history a where INST_ID= and SESSION_ID=352and to_char(a.sample_time, 'yyyymmddHH24mi')=;
EVENT SQL_ID USER_ID PROGRAM
------------------------------ ------------- ---------- ------------------------------------------------
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)
oracle@ZJHZ-px-xxx- (MMAN)

MMAN进程是Oracle 10g引入用于进行内存管理的进程,在进行动态内存调整时,这个进程要发挥其作用,这个进程的作用是内部数据库任务的执行者:MMAN is used for internal database tasks.
MMAN to wait and post itself for satisfying an auto-tuned memory request while trying to fully free a component's quiesced granules. In Release 10.1, the name of this event was 'wait for SGA component shrink'.
在后台转储跟踪,可以看到MMAN进程的等待:

WAIT #: nam='SGA: MMAN sleep for component shrink' ela=  component id= current size= target size= obj#=- tim=
WAIT #: nam='SGA: MMAN sleep for component shrink' ela= component id= current size= target size= obj#=- tim=
WAIT #: nam='SGA: MMAN sleep for component shrink' ela= component id= current size= target size= obj#=- tim=
WAIT #: nam='SGA: MMAN sleep for component shrink' ela= component id= current size= target size= obj#=- tim=
WAIT #: nam='SGA: MMAN sleep for component shrink' ela= component id= current size= target size= obj#=- tim=

查询数据库最近内存调整记录

SQL> select COMPONENT,
2 STATUS,
3 OPER_TYPE,
4 OPER_MODE,
5 PARAMETER,
6 round(INITIAL_SIZE/1024/1024,2) INITIAL_mb ,
7 round(TARGET_SIZE/1024/1024,2) TARGET_MB,
8 round(FINAL_SIZE/1024/1024,2) FINAL_mb,
9 to_char(START_TIME, 'yyyy-mm-dd hh24:mi:ss') START_TIME,
10 to_char(END_TIME, 'yyyy-mm-dd hh24:mi:ss') END_TIME
11 from V$MEMORY_RESIZE_OPS
12 where START_TIME > to_date('','yyyymmddhh24')
13 order by END_TIME;
COMPONENT STATUS OPER_TYPE OPER_MODE PARAMETER INITIAL_MB TARGET_MB FINAL_MB START_TIME END_TIME
------------------------------ --------- ------------- --------- ------------------------------ ---------- ---------- ---------- ------------------- -------------------
shared pool COMPLETE SHRINK DEFERRED shared_pool_size 2752 2624 2624 2017-09-26 22:01:21 2017-09-26 22:10:07
DEFAULT buffer cache COMPLETE GROW DEFERRED db_cache_size 1536 1664 1664 2017-09-26 22:01:21 2017-09-26 22:10:07
DEFAULT buffer cache COMPLETE SHRINK DEFERRED db_cache_size 1664 1536 1536 2017-09-26 22:23:11 2017-09-26 22:23:13
shared pool COMPLETE GROW DEFERRED shared_pool_size 2624 2752 2752 2017-09-26 22:23:11 2017-09-26 22:23:13

至此问题定位,是由于SGA内存自动调整导致数据库异常

Oracle数据库大量library cache: mutex X及latch: shared pool问题排查一例的更多相关文章

  1. library cache: mutex X

    我们先来看看 library cache: mutex X . 是个什么东西 The library cache mutex is acquired for similar purposes that ...

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

    In this Document   Purpose   Troubleshooting Steps   What is a 'library cache: mutex X' wait?   What ...

  3. [20190402]Library Cache mutex.txt

    [20190402]Library Cache mutex.txt 1.环境:SCOTT@book> @ ver1PORT_STRING                    VERSION   ...

  4. 11g等待事件之library cache: mutex X

    11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论   library cache: mutex X ...

  5. Troubleshooting 'library cache: mutex X' Waits.

    What is a 'library cache: mutex X' wait? The mutex feature is a mechanism to control access to in me ...

  6. Oracle数据库学习笔记(一)

      Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库). Instance(实例) :在Oracle Instance中主要包含了SGA以及一些进程(例如:P ...

  7. Oracle Shared Pool 原理

    Oracle Shared Pool 原理 由于shared pool中最重要的是library cache,所以本文主要讲解Library cache的结构,library cache latch, ...

  8. Oracle内存详解之 Library cache 库缓冲

    Oracle内存详解之 Library cache 库缓冲 2017年11月09日 11:38:39 阅读数:410更多 个人分类: 体系结构 Library cache是Shared pool的一部 ...

  9. Oracle内存详解之二 Library cache 库缓冲-转载

    Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedu ...

随机推荐

  1. 为什么C语言会有头文件

    前段时间一个刚转到C语言的同事问我,为什么C会多一个头文件,而不是像Java和Python那样所有的代码都在源文件中.我当时回答的是C是静态语言很多东西都是需要事先定义的,所以按照惯例我们是将所有的定 ...

  2. Csharp: TreeView 初始化设置默认选择节点

    /// <summary> /// 设置查找的节点为选定节点 /// 涂聚文 /// 2013-07-15 /// </summary> /// <param name= ...

  3. 使用Anaconda管理环境

    Anaconda指的是一个开源的python发行版本,其包含了conda.Python等180多个科学包及其依赖项. Anaconda是一个开源的包.环境管理器,可以用于在同一个机器上安装不同版本的软 ...

  4. 【数据库】1.0 MySQL入门学习(一)——常识性知识

    1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...

  5. ${pageContext.request.contextPath}是JSP取得绝对路径(转载)

    ${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...

  6. .NET开源工作流RoadFlow-表单设计-子表

    子表即明细表 从表:与主表对应在子表. 从表主键:从表的主键. 主表字段:主表中与从来关联的字段,一般为主表的主键. 与主表关联字段:从表中与主表关联的字段. 选择之后即可在下面从表字段列表中设置每个 ...

  7. SharePoint 2013 - Using Web Proxy

    用于在SharePoint中调用其它网站服务时使用. 1. 需要引用sp.js 和 sp.runtime.js文件: 2. 需要用到SP.WebRequestInfo,SP.WebProxy,和SP. ...

  8. Business Component(BC)和Business Object(BO)

    Siebel应用架构的一个成功的地方就是在应用里引入了BC,BO的概念,从而使得几千张关系数据表能够按照业务的含义组织成业务对象,对于业务人员而言具有了业务上的含义,而不仅仅是从技术人员的观点来对待数 ...

  9. asyncio标准库7 Producer/consumer

    使用asyncio.Queue import asyncio import random async def produce(queue, n): for x in range(1, n + 1): ...

  10. CSS3中REM使用详解

    px 在Web页面制作中,我们一般使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小(虽然一般人不会去改 ...