QUICKLINK: Note 399497.1 FAQ ORA-4030 Note 1088087.1 : ORA-4030 Diagnostic Tools [Video]
Have you observed an ORA-0430 error reported in your alert log?
ORA-4030 errors are raised when memory or resources are requested from the Operating System and the Operating System is unable to provide the memory or resources. The arguments included with the ORA-4030 are often important to narrowing down the problem.
For more specifics on the ORA-4030 error and scenarios that lead to this problem, see Note 399497.1 FAQ ORA-4030.
Looking for the best way to diagnose?
There are several available diagnostic tools (error tracing, 11g Diagnosibility, OCM, Process Memory Guides, RDA, OSW, diagnostic scripts) that collectively can prove powerful for identifying the cause of the ORA-4030.
Error Tracing
The ORA-4030 error usually occurs on the client workstation and for this reason, a trace file and alert log entry may not have been generated on the server side. It may be necessary to add additional tracing events to get initial diagnostics on the problem.
To setup tracing to trap the ORA-4030, on the server use the following in SQLPlus:
alter system set events '4030 trace name heapdump level 536870917;name errorstack level 3';Once the error reoccurs with the event set, you can turn off tracing using the following command in SQLPlus:alter system set events '4030 trace name context off; name context off';NOTE: See more diagnostics information to collect in Note 399497.1
11g DiagnosibilityStarting with Oracle Database 11g Release 1, the Diagnosability infrastructure was introduced which places traces and core files into a location controlled by the DIAGNOSTIC_DEST initialization parameter when an incident, such as an ORA-4030 occurs. For earlier versions, the trace file will be written to either USER_DUMP_DEST (if the error was caught in a user process) or BACKGROUND_DUMP_DEST (if the error was caught in a background process like PMON or SMON). The trace file may contain vital information about what led to the error condition. Note 443529.1 11g Quick Steps to Package and Send Critical Error Diagnostic Informationto Support[Video] Oracle Configuration Manager (OCM)
Oracle Configuration Manager (OCM) works with My Oracle Support to enable proactive support capability that helps you organize, collect and manage your Oracle configurations.
Oracle Configuration Manager Quick Start Guide Note 548815.1: My Oracle Support Configuration Management FAQ
Note 250434.1: BULLETIN: Learn More About My Oracle Support Configuration Manager
General Process Memory Guides
An ORA-4030 indicates a limit has been reached with respect to the Oracle process private memory allocation. Each Operating System will handle memory allocations with Oracle slightly differently.
Solaris Note 163763.1Linux Note 341782.1IBM AIX Notes 166491.1 and 123754.1HP Note 166490.1Windows Note 225349.1, Note 373602.1, Note 231159.1, Note 269495.1, Note 762031.1Generic Note 169706.1
RDAThe RDA report will show more detailed information about the database and Server Configuration. Note 414966.1 RDA Documentation Index
Download RDA -- refer to Note 314422.1 Remote Diagnostic Agent (RDA) 4 - Getting Started
OS Watcher (OSW)This tool is designed to gather Operating System side statistics to compare with the findings from the database. This is a key tool in cases where memory usage is higher than expected on the server while not experiencing ORA-4030 errors currently.
Reference more details on setup and usage in Note 301137.1 OS Watcher User Guide
Diagnostic Scripts
Refer to Note 1088087.1 : ORA-4030 Diagnostic Tools [Video]
Common Causes/Solutions
The ORA-4030 can occur for a variety of reasons. Some common causes are:
* OS Memory limit reached such as physical memory and/or swap/virtual paging. For instance, IBM AIX can experience ORA-4030 issues related to swap scenarios. See Note 740603.1 10.2.0.4 not using large pages on AIX for more on that problem. Also reference Note 188149.1 for pointers on 10g and stack size issues.* OS limits reached (kernel or user shell limits) that limit overall, user level or process level memory * OS limit on PGA memory size due to SGA attach address Reference: Note 1028623.6 SOLARIS How to Relocate the SGA* Oracle internal limit on functionality like PL/SQL varrays or bulk collections. ORA-4030 errors will include arguments like "pl/sql vc2" "pmucalm coll" "pmuccst: adt/re". See Coding Pointers for pointers on application design to get around these issues* Application design causing limits to be reached* Bug - space leaks, heap leaks
***For reference to the content in this blog, refer to Note.1088267.1 Master Note for Diagnosing ORA-4030