ORA-00604: error occurred at recursive SQL level 2

Posted on 2003-11-06
Last Modified: 2007-12-19
When my oracle run about several days, it wll show the error message below:

ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4200 bytes of shared memory
("shared pool","TRIGGER$","sga heap","state objects")
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4200 bytes of shared memory
("shared pool","unknown object","sga heap","state objects")

What can I do about this?

Question by:meloling

Accepted Solution

baonguyen1 earned 20 total points
ID: 9699301
Which version you are running. Is it 8.1.7 ?

Try to:

1. Increase SHARED_POOL_SIZE parameter
2. Set _db_handles_cached to zero

You may need to apply the patchset, Oracle recommends 8174 as it seems you run into memory leaks problem

Hope this helps

Expert Comment

ID: 9700895
Your shared pool is fragmented.
Try to  flush SGA.
You may have to bounce database.
Increase SHARED_POOL_SIZE parameter if it is low.
LVL 13

Expert Comment

ID: 9710328
the errors can also be due to

ORA-4031 / SGA memory leak of PERMANENT memory occurs for buffer handles.
work around : use the undocumented parameter _db_handles_cached = 0 . This bug has been resolved in versions above

ORA-4031 due to leak / cache buffer chain contention from AND-EQUAL access  
This bug has been resolved in versions above

< Bug:1318267  >
   INSERT AS SELECT statements may not be shared when they should be if  TIMED_STATISTICS is set to true . It can lead to ORA-4031
Workaround : set _SQLEXEC_PROGRESSION_COST=0  
Resolved in

<  Bug:1193003 >
     Cursors may not be shared in 8.1 when they should be
Resolved after version

ORA-4031/excessive "miscellaneous"
shared pool usage possible. (many PINS) .This is known to affect the XML parser.  
resolved after

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
levels for reporting 5 74
Oracle - SQL Script to test for bill dates 3 or more times in SAME WEEK? 11 55
ORA-01008: not all variables bound. 6 56
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many‚Ķ
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now