李真旭(Roger)

云和恩墨西北区技术总监

Oracle ACE, ACOUG 核心会员

前不久某客户的一套核心数据库(10.2.0.4.12),据说每间隔一段时间就必须重启,因为会报ORA-04031 错误。

查询发现 shared pool 差不多 5G 的样子,其实 ges resource 消耗了差不多 3.5G shared pool 内存,也确实有些离谱了。

我们可以看到,ges resource 消耗的内存确实非常高。那么这里为什么 ges resource 消耗的内存这么高呢?

通过检查 v$resource_limit 发现存在有些异常,如下所示:

我们可以发现,ges_cache_ress 的 max 和 current 都很大,大的超乎想象。从现象来看,可以大致判断是 shared pool 中 cache 的 ges resource 没有及时回收,导致 ges resource占据的内存比较大。

想到这里,我心中产生了一个疑问,是否 Oracle 有相关隐含参数来控制这个资源回收的机制呢?我们知道 Oracle 通常都是这么干的,通过隐含参数来控制某项功能或机制。

搜下发现了2个相关的 bug,确实可能出现 ges resource 消耗内存很高的情况,最后产生ora-04031错误。

其中文档中提到了一个参数 _lm_cache_res_cleanup;通过调整该参数,来该表 ges resource 的回收机制;有可能避免这个情况。

方法好用不,要试试才知道,果断告知客户进行调整,然后观察几天后,发现 ges resource 的内存消耗得到了有效控制:

在未调整参数之前,重启实例1天,ges resource 就超过 300M了,然后逐渐攀升,直至出现问题。

备注:  bug 9026008,bug 10042937 跟该参数有关系,影响版本为11.1,11.2部分版本,大家可以阅读下。

总结:Oracle数据库的精细程度往往超越了大家的经验,几乎每一个微小的功能都存在着控制参数,遇到问题时,仔细分析,深入细节,最后从源头解决问题,是Oracle DBA的必备素质


本文出自数据和云公众号,原文链接

无微不至:调整_lm_cache_res_cleanup解决Shared Pool 的4031问题相关推荐

  1. oracle 调整shared pool,Oracle性能调整中的Shared pool tunning要点

    本文主要简述的是Oracle性能调整中Shared pool tunning要点,Shared pool tunning要点,在Oracle性能调整实际的相关操作中起到不可忽视的作用,以下的文章就是对 ...

  2. Shared pool内存块组成结构及4031错误原因分析

    这篇文章是参考甲骨论老相老师的教学视频所做的学习笔记: http://v.youku.com/v_show/id_XMzkyMDQ4MzUy.html 之前提到Shared pool的作用: Shar ...

  3. oracle 调整shared pool,Oracle设置Shared Pool的大小

    在oracle 10G或者11G版本中,如何合理设置shared pool大小,对oracle数据库的性能影响很大. Shared Pool的大小设置规则如下: 1.查到shared pool设置的合 ...

  4. 隐含参数与 Library Cache 与 Shared Pool Latch 原理

    现在每一个 Oracle DBA,很少有不知道隐含参数的.但至少在表面上,Oracle 是不支持将隐含参数用于数据库的.隐含参数通常用于救急,或者是作为 Oracle BUG 的临时解决方案(Work ...

  5. SHARED POOL 原理

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

  6. oracle shared pool size,oracle 关于设置shared pool及sga大小

    本文参考了https://blog.csdn.net/xinzhan0/article/details/52461611?locationNum=2&fps=1 如何设置shared pool ...

  7. oracle shared pool size,SHARED_POOL_RESERVED_SIZE参数的设置及作用

    SHARED_POOL_RESERVED_SIZE参数的设置及作用 shared_pool_reserved_size: 该参数指定了保留的共享池空间,用于满足将来的大的连续的共享池空间请求.当共享池 ...

  8. 共享池 shared pool

    定义: 共享池( shared pool )是位于SGA中的一块内存区域,主要用于缓存SQL的执行计划.之所以叫共享,是由于该块内存区域可以被多个会话共享同一个执行计划.即,如果有一个会话执行了SQL ...

  9. atch: shared pool 优化探索

    首先来看赤裸裸的问题直击: Top 10 Foreground Events by Total Wait Time Event Waits Total Wait Time (sec) Wait Avg ...

最新文章

  1. php 编译安装降解,对php编译安装的修正
  2. python input和print,Python基础——输出[print()]与输入[input()]
  3. 基于centos6的mysql5.7.13主从部署(一)
  4. php memcache扩展的一个细节
  5. 【正一专栏】巴萨和曼城都那么强了还在买人续约
  6. 太逗了,面试官让我讲线程 WAITING 状态!
  7. 001Python路--入门
  8. go语言之行--golang核武器goroutine调度原理、channel详解
  9. zigbee 编译source_zigbee_sensor_monitor_v1_2_1 vs2008 qt-win-opensource-src-4.4.3
  10. 百味扶胰系假药 冒用降糖宁胶囊批号
  11. Servlet中获取请求体的数据
  12. java new对象 =null_在Java中将对象分配为null会影响垃圾回收吗?
  13. matplotlib setting zh-hans
  14. C/C++字符串处理库
  15. Eclipse改动Project的文件夹位置
  16. Android Studio使用tips
  17. Android开发指南(39) —— Testing Fundamentals
  18. python源码深度剖析_Python源码剖析-深度探索动态语言核心技术 PDF 下载
  19. 数据分析_excel
  20. 狄克斯特拉算法(Dijkstra)详细解释

热门文章

  1. c++-内存管理-G2.9
  2. 第二代商用计算机,紫光计算机第二代商用台式机上市 支持十一代英特尔酷睿...
  3. java list 拆分_Java面试题怎么确保一个集合不能被修改?
  4. 24.command-executor
  5. 4.类型设计规范《.NET设计规范》
  6. Web 之困 现代Web应用安全指南一本好书 69.00?
  7. 面向对象设计原则OO
  8. win7或xp下常用命令
  9. Eclipse 常用快捷键
  10. TcpSocket编程与Event编写学习的好例子