Gathering Initial Troubleshooting Information for Analysis of ORA-4031 Errors on the Shared Pool

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.

时间: 2024-10-18 03:40:43

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

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

12/20 7 Oracle Net Listener Parameters (listener.ora) This chapter provides a complete listing of the listener.ora file configuration parameters. This chapter contains these topics: Overview of Oracle Net Listener Configuration File Oracle Net Listen

Methods and systems for sharing common job information

Apparatus and methods are provided for utilizing a plurality of processing units. A method comprises selecting a pending job from a plurality of unassigned jobs based on a plurality of assigned jobs for the plurality of processing units and assigning

Troubleshooting &#39;library cache: mutex X&#39; waits. (文档 ID 1357946.1)

In this Document   Purpose   Troubleshooting Steps   What is a 'library cache: mutex X' wait?   What causes 'library cache: mutex X' wait?   How to diagnose the cause.   How to Examine the Diagnostics.   Potential Solutions   References APPLIES TO: O

(转载)Oracle AWR报告指标全解析

Oracle AWR报告指标全解析 2014-10-16 14:48:04 分类: Oracle [性能调优]Oracle AWR报告指标全解析 2013/08/31 BY MACLEAN LIU 26条评论 [性能调优]Oracle AWR报告指标全解析 开Oracle调优鹰眼,深入理解AWR性能报告:http://www.askmaclean.com/archives/awr-hawk-eyes-training.html 开Oracle调优鹰眼,深入理解AWR性能报告 第二讲: http:

Procwatcher: Script to Monitor and Examine Oracle DB and Clusterware Processes (文档 ID 459694.1)

Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.2 to 12.1.0.1 [Release 10.2 to 12.1] Linux x86 HP-UX PA-RISC (64-bit) IBM AIX on POWER Systems (64-bit) Oracle Solaris on SPARC (64-bit) HP-UX Itanium Linux x86-64 Oracle Server Enterp

Oracle DBA面试突击题

一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答:Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以分为三小类. 以Nest Loop为例: 传统的Nest Loop连接: 针对In.Exists优化的Semi Nest Loop: 专门针对Not In.Not Exists优化的Anti Nest Loop. Semi/Anti *** Join这几种也叫半连接. (可以补充一下这三个连接的不同之

Java性能提示(全)

http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLists and ArrayLists (and Vectors) (Page last updated May 2001, Added 2001-06-18, Author Jack Shirazi, Publisher OnJava). Tips: ArrayList is faster than

Migrating Oracle on UNIX to SQL Server on Windows

Appendices Published: April 27, 2005 On This Page Appendix A: SQL Server for Oracle Professionals Appendix B: Getting the Best Out of SQL Server 2000 and Windows Appendix C: Baselining Appendix D: Installing Common Drivers and Applications Installing

ORA_ERROR大全

转自:http://blog.csdn.net/haiross/article/details/12839229 常见错误:-60 ORA00060: deadlock detected while waiting for resource 一般错误:  - 1 ORA00001: unique constraint (.) violated  -17 ORA00017: session requested to set trace event  -18 ORA00018: maximum nu