In this Document

  Purpose
  Troubleshooting Steps
  References

APPLIES TO:

Oracle Database - Enterprise Edition - Version 8.0.6.3 and later

Information in this document applies to any platform.

PURPOSE

The purpose of this document is to provide some steps to take to gather some essential information necessary for initial analysis of ORA-4031 errors on the shared pool. For more detailed information gathering, please
refer to MOS Document 430473.1.

Note: this document only applies to ORA-4031 errors generated on the shared pool. For ORA-4031 errors on the large pool, please review MOS Document 1674933.1.
For ORA-4031 errors on the Java and Streams pools, please review MOS Document 1675450.1.

TROUBLESHOOTING STEPS

Review MOS Document 1674117.1 on
what information is to be gathered for analysis of an ORA-4031 issue, why this information is necessary, and how to obtain it.

At least the following pieces of information should be collected to be able to start analysis of the ORA-4031 issue:

  1. For Oracle10g and lower releases, obtain the trace file of the very first ORA-4031 occurrence reported after the last instance startup. For Oracle11g and higher release, obtain the incident package (see MOS Document 443529.1)
    of the very first ORA-4031 incident reported after the last instance startup.
  2. Obtain the RDA report (see MOS Document 314422.1 for
    details of installing & running RDA. RDA can be included in incident packages by default in 11.2.0.2 onwards by following the instructions in MOS Document 1456047.1).
  3. Obtain the current memory allocations in the shared pool:
        CONNECT / AS SYSDBA



        SET PAGESIZE 9999

        SET LINESIZE 256

        SET TRIMOUT ON

        SET TRIMSPOOL ON

        COL 'Total Shared Pool Usage' FORMAT 99999999999999999999999

        COL bytes FORMAT 999999999999999

        COL current_size FORMAT 999999999999999

        COL name FORMAT A40

        COL value FORMAT A20

        ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS';



        SPOOL SGAPARAMS.TXT



        /* Database identification */

        SELECT name, platform_id, database_role FROM v$database;

        SELECT * FROM v$version WHERE banner LIKE 'Oracle Database%';



        /* Current instance parameter values */

        SELECT n.ksppinm name, v.KSPPSTVL value

        FROM x$ksppi n, x$ksppsv v

        WHERE n.indx = v.indx

        AND (n.ksppinm LIKE '%shared_pool%' OR n.ksppinm IN ('_kghdsidx_count', '_ksmg_granule_size', '_memory_imm_mode_without_autosga'))

        ORDER BY 1;



        /* Current memory settings */

        SELECT component, current_size FROM v$sga_dynamic_components;



        /* Memory resizing operations */

        SELECT start_time, end_time, component, oper_type, oper_mode, initial_size, target_size, final_size, status 

        FROM v$sga_resize_ops

        ORDER BY 1, 2;



        /* Historical memory resizing operations */

        SELECT start_time, end_time, component, oper_type, oper_mode, initial_size, target_size, final_size, status 

        FROM dba_hist_memory_resize_ops

        ORDER BY 1, 2;



        /*  Shared pool 4031 information */

        SELECT request_failures, last_failure_size FROM v$shared_pool_reserved;



        /* Shared pool reserved 4031 information */

        SELECT requests, request_misses, free_space, avg_free_size, free_count, max_free_size FROM v$shared_pool_reserved;



        /* Shared pool memory allocations by size */

        SELECT name, bytes FROM v$sgastat WHERE pool = 'shared pool' AND (bytes > 999999 OR name = 'free memory') ORDER BY bytes DESC;



        /* Total shared pool usage */

        SELECT SUM(bytes) "Total Shared Pool Usage" FROM v$sgastat WHERE pool = 'shared pool' AND name != 'free memory';



        /* Cursor sharability problems */

        /* This version is for >= 10g; for <= 9i substitute ss.kglhdpar for ss.address!!!! */

        SELECT sa.sql_text,sa.version_count,ss.*

        FROM v$sqlarea sa,v$sql_shared_cursor ss

        WHERE sa.address=ss.address AND sa.version_count > 50

        ORDER BY sa.version_count ;



        SPOOL OFF
  4. For Oracle10g ang later, obtain an AWR report (see MOS Document 748642.1)
    from the period where the first ORA-4031 was encountered:

        CONNECT / AS SYSDBA

        @?/rdbms/admin/awrrpt.sql
  5. For Oracle10g and later, obtain SGA statistics:
        CONNECT / AS SYSDBA

        ORADEBUG setmypid

        ORADEBUG unlimit

        ALTER SESSION SET events 'immediate trace name dump_all_comp_granule_addrs level 1';

        ORADEBUG tracefile_name

        ORADEBUG close_trace

After having gathered all of the above information, upload the information to the Service Request.

REFERENCES

NOTE:443529.1 - Database 11g: Quick
Steps to Package and Send Critical Error Diagnostic Information to Support [Video]

NOTE:314422.1 - Remote Diagnostic
Agent (RDA) - Getting Started





NOTE:430473.1 - ORA-4031 Common Analysis/Diagnostic
Scripts [Video]

NOTE:1456047.1 - How to Setup Automatic
RDA Data Collection for Incident Packages?

NOTE:1675450.1 - Gathering Initial
Troubleshooting Information for Analysis of ORA-4031 Errors on Java and Streams Pools

NOTE:1674117.1 - SRDC - ORA-4031
on Shared Pool: Checklist of Evidence to Supply

NOTE:1674933.1 - Gathering Initial
Troubleshooting Information for Analysis of ORA-4031 Errors on the Large Pool

others

ORA-04031: Unable to Allocate %n Bytes of Shared Memory ("shared pool",%s,%s,%s)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 8.1.7.4 and later

Information in this document applies to any platform.

***Checked for relevance on 31-Jul-2013***

Archived

PURPOSE

ORA-04031: unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")

TROUBLESHOOTING STEPS

fix:

Try to increase shared_pool_size in init.ora file. If it seems large enough
then improve segmentation in shared pool by reserving part of shared pool for
large objects using parameter SHARED_POOL_RESERVED_SIZE (good value to start
tuning is 1/3 of shared-pool size). It is possible to decide what is "
large object" by parameter SHARED_POOL_RESERVED_MIN_ALLOC.

Gathering Initial Troubleshooting Information for Analysis of ORA-4031 Errors on the Shared Pool的更多相关文章

  1. 【ORA】ORA-00371: not enough shared pool memory

    今天rac中有一个节点asm实例起不来包了ora-000371的错误,错误贴在下面: [oracle@rac2 dbs]$ srvctl start asm -n rac2 PRKS-1009 : F ...

  2. Oracle内存全面分析

    Oracle内存全面分析 Oracle的内存配置与oracle性能息息相关.而且关于内存的错误(如4030.4031错误)都是十分令人头疼的问题.可以说,关于内存的配置,是最影响Oracle性能的配置 ...

  3. Oracle Net Listener Parameters (listener.ora)(转)

    12/20 7 Oracle Net Listener Parameters (listener.ora) This chapter provides a complete listing of th ...

  4. Click to add to Favorites Troubleshooting: High Version Count Issues (Doc ID 296377.1)

    Copyright (c) 2018, Oracle. All rights reserved. Oracle Confidential. Click to add to Favorites Trou ...

  5. Troubleshooting ORA-01555 - Snapshot Too Old: Rollback Segment Number "String" With Name "String" Too Small (Doc ID 1580790.1)

    Troubleshooting ORA-01555 - Snapshot Too Old: Rollback Segment Number "String" With Name & ...

  6. Troubleshooting Autoinvoice Import

    metalink :1089172.1 In this Document   Purpose   Troubleshooting Steps   AutoInvoice Execution Repor ...

  7. 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 ...

  8. Back up and restore information in Firefox profiles

    Click the menu button , click Help and select Troubleshooting Information. The Troubleshooting Infor ...

  9. Database hang and Row Cache Lock concurrency troubleshooting

    http://www.dadbm.com/database-hang-row-cache-lock-concurrency-troubleshooting/ Issue backgroundThis ...

随机推荐

  1. maven配置详解

    什么是pom?     pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的 ...

  2. 多线程之Java线程阻塞与唤醒

    线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题.如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节.在Java ...

  3. css模块化及CSS Modules使用详解

    什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...

  4. (一一九)通过CALayer实现阴影、圆角、边框和3D变换

    在每个View上都有一个CALayer作为父图层,View的内容作为子层显示,通过layer的contents属性决定了要显示的内容,通过修改过layer的一些属性可以实现一些华丽的效果. [阴影和圆 ...

  5. VMware虚拟化解决方案】如何选择虚拟化产品

    http://wangchunhai.blog.51cto.com/225186/1425557/ 拟化.云计算.大数据.智慧城市,是近期以及将来一段时间的热点.现在虚拟化产品很多,做虚拟化的公司也很 ...

  6. JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律

    JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...

  7. 【VSTS 日志 15/11/18】 – 插件应用市场,RM,包管理器等

    [小编]从今天开始,我将在这个博客上连载Visual Studio Team Service的定期更新.VSTS是Team Foundation Server 的在线版本,微软每3周会对这个服务进行更 ...

  8. 关于js校验,检验常见的比如:电话,数字,邮箱,手机号等等

     /**  验证数字:^[0-9]*$  验证n位的数字:^\d{n}$  验证至少n位数字:^\d{n,}$  验证m-n位的数字:^\d{m,n}$  验证零和非零开头的数字:^(0|[1-9 ...

  9. android值得珍藏的6个开源框架技术

    1.volley  项目地址 https://github.com/smanikandan14/Volley-demo JSON,图像等的异步下载: 网络请求的排序(scheduling) 网络请求的 ...

  10. 牛腩新闻发布系统--学习Web的小技巧汇总

    2014年11月10日,是个难忘的日子,这一天,小编的BS学习开始了,BS的开头,从牛腩新闻发布系统开始,之前学习的内容都是CS方面的知识,软考过后,开始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...