天萃荷净

Oracle研究中心案例分析:运维DBA反映Oracle数据库10.2.0.4.12每间隔一段时间就必须重启,运行一断时间报ORA-04031错误oracle ges res cache large of memory。

本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客

本文链接地址: 通过调整_lm_cache_res_cleanup解决shared Pool问题

核心数据库(10.2.0.4.12),每间隔一段时间就必须重启,因为会报ORA-04031错误。查询发现shared pool差不多5G的样子,其实ges resource消耗了差不多3.5G shared pool 内存,也确实有些离谱了。

SQL> c/gcs/ges

1* select * from v$sgastat where name like 'ges%'

SQL> /

POOL         NAME                                 BYTES

------------ ------------------------------- ----------

shared pool  ges big msg p                       461440

shared pool  ges resource hash seq tab            32768

shared pool  ges shared global area               23928

shared pool  ges regular msg buffers            1254008

shared pool  ges enqueue multiple free             1280

shared pool  ges res mastership bucket             4096

shared pool  ges deadlock xid freelist            11264

shared pool  ges resource pools                    1984

shared pool  ges recovery domain table              176

shared pool  ges reserved msg buffers           8240008

shared pool  ges big Oracle?о?????msg buffers               15936168

shared pool  ges process array                  1273272

shared pool  ges enqueue max. usage pe               32

shared pool  ges lmd process descripto             2760

shared pool  ges process hash table               44000

shared pool  ges enqueue cur. usage pe               32

shared pool  ges ipc instance maps                  384

shared pool  ges lms process descripto             5520

shared pool  ges resource                    3696886168

shared pool  ges deadlock xid hash tab            17800

shared pool  ges resource hash table            1441792

shared pool  ges scan queue array                   176

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

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

RESOURCE_NAME        CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION   LIMIT_VALUE

-------------------- ------------------- --------------- -------------------- -------------

ges_procs                            181             439       1001                 1001

ges_ress                               0               0      27462            UNLIMITED

ges_locks                              0               0      40358            UNLIMITED

ges_cache_ress                   8559179        14625461          0            UNLIMITED

ges_reg_msgs                         243             898       2750            UNLIMITED

ges_big_msgs                          41           35280       1934            UNLIMITED

ges_rsv_msgs                           0               0       1000                 1000

SQL> select startup_time from v$instance;

STARTUP_TIME

-------------------

2015-10-26 05:02:04

我们可以发现,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的内存消耗得到了有效控制:

SQL> select * from v$sgastat where name like '%ges res%';

POOL                     NAME                               BYTES

------------------------ ----------------------------- ----------

shared pool              ges resource hash seq tab          32768

shared pool              ges res mastership bucket           4096

shared pool              ges resource pools                  1984

shared pool              ges reserved msg buffers         8240008

shared pool              ges resource                   215312592

shared pool              ges resource hash table          1441792

6 rows selected.

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> select startup_time from v$instance;

STARTUP_TIME

-------------------

2016-01-28 23:08:27

SQL> select sysdate from dual;

SYSDATE

-------------------

2016-02-03 10:24:17

有些人可能会说,才几天可能看不出来吧?实际上,之前客未调整之前,重启实例才1天,ges resource就超过300M了。

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

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法

oracle lms进程 内存,【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法...相关推荐

  1. oracle 6508,【案例】Oracle报错ORA-06552 ORA-06553 ORA-006508解决办法

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库alert日志中出现大量ORA-06552 ORA-06553 ORA-006508报错,分析原因为存储过程异常导致,结合MOS ...

  2. oracle中00604,【案例】Oracle无法启动报错ORA-00604 ORA-01578官方解决办法

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库无法启动并报错ORA-00604 ORA-01578,分析原因为遇核心对象bootstrap$有坏块的解决办法.change b ...

  3. oracle报错1455,oracle_1455_错误解决办法

    oracle 1455 错误解决办法 ORA-01455: 转换列溢出整数数据类型 在用 expuser/pwd@oraclesidfile=e:\abc530.dmp 导出oracleDmp时报错了 ...

  4. 12 c for. oracle rac,【案例】Oracle RAC FOR AIX搭建执行root.sh时两次报错的解决办法

    天萃荷净 运维DBA反映在aix 5.3 ml6安装10.2.0.1 rac报错0509-036 Cannot load program crsctl.bin because of the follo ...

  5. oracle数据库报错代码,【案例】Oracle数据库dbv检查坏块时报错代码:6106解决办法...

    [案例]Oracle数据库dbv检查坏块时报错代码:6106解决办法 时间:2016-10-24 21:02   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研 ...

  6. Oracle常见ORA错误及解决办法

    Oracle常见ORA错误及解决办法 问题1 1.1 错误现象: EXP-00008: ORACLE error 1013 encountered ORA-01013: user requested ...

  7. Oracle 报错 28000原因和解决方法

    Oracle 报错 28000原因和解决方法 使用PLSQL登录Oracle数据库时提示"ORA-28000:这个帐号被锁定". 出现这个问题的原因是:在Oracle databa ...

  8. 爱数oracle备份软件,oracle 11g更新补丁后,第三方软件爱数RMAN备份报错ALLOCATE CHANNEL...

    1.故障现像: oracle 11.2.0.4数据库安装补丁包p28204707_112040_Linux-x86-64之后,使用爱数备份一体机备份ORACLE最后会报错失败,失败报错如下 2.问题分 ...

  9. Oracle EBS 销售订单发运后连接行程停靠站请求报错导致物料未出库,但单销售行已关闭并进入开票接口

    Oracle EBS 销售订单发运后连接行程停靠站请求报错导致物料未出库,但单销售行已关闭并进入开票接口 在开发销售订单发运的程序时碰到如图所示的错误: 在分析一波可能出现的问题后定位到销售订单类型中 ...

最新文章

  1. LINUX 查找tomcat日志关键词
  2. android 比较两个list,比较两个List的内容是否相等
  3. OSPF中stub area配置实例
  4. 改进型的时钟置换算法-解惑
  5. 【Prince2科普】P2七大主题之商业论证
  6. ruby在类中访问@,类外访问调用方法
  7. 华为云数据库首席架构师:关于数据库他这样说……
  8. Spring集成CXF发布WebService并在客户端调用
  9. DayDayUp:2021年的自我总结
  10. vscode之parcel清空dist目录
  11. STM32相关手册使用记录
  12. MacOS Big Sur 11.5.1 (20G80) OC 0.7.1 / Cl 5138 / PE 三分区原版黑苹果镜像
  13. 仿真软件计算机配置,电脑配置关于ANSYS等仿真软件,AMDcpu可选择吗?
  14. DoS攻击原理和防御方法
  15. 接近开关 NPN 与 PNP的区别
  16. 记一个docker网络问题--network=host
  17. 【黑马程序员】vue学习笔记(未完)
  18. 介绍一下完整接收一帧数据的方法
  19. 论文查重会查新闻内容吗?
  20. Deepin系统下MATLAB中文字体乱码问题解决(加上字体美化)

热门文章

  1. component传值问题
  2. 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析...
  3. python变量名区分大小写_Python变量名区分大小写,所以student和Student不是同一个变量。...
  4. 2021-07-10 arduino 用于矩阵键盘的 开源库函数 keypad.h使用说明
  5. 从传统企业到字节、美团、京东,再到拿下华为Offer,程序员的逆袭之路。
  6. 美本计算机专业,2016美国本科计算机cs专业排名
  7. 【挑战程序设计】- 2.5 图论(最短路、最小生成树)
  8. Python Pandas操作Excel表格文件:创建新表格,追加数据
  9. 如何关闭iOS系统自动更新提示?
  10. 曝光过度和曝光不足_过度思考,进化心理学和编程