Skip to Main Content

Breadcrumb

Question and Answer

Chris Saxon

Thanks for the question.

Asked: December 09, 2008 - 9:10 am UTC

Last updated: August 06, 2018 - 12:33 pm UTC

Version: 8.1.7

Viewed 50K+ times! This question is

You Asked

Pl suggest how to solve the problem related to ORA-04030.

Thanks

Ajay Goel

and Tom said...

add more memory (I did not even have to look that one up, unable to allocate X bytes of process memory)


Whatever you were doing hit the limit on OS memory that could be allocated to you. There could be many causes of this

o you write a plsql function like this:
declare
   type array is table of long index by binary_integer;
   l_data array;
begin
   loop
     l_data(l_data.count+1) := rpad('*',32000,'*');
   end loop;
end;


o you could be setting your pga aggregate target too high, higher then the system will allocate memory

o you could be running on 32bit windows and are just hitting a windows limit because you have too many sessions

o you might have ulimit set too low on your unix system and ulimit is artificially restricting the amount of memory you can allocate

o and so on......



But basically - given the question "how do you solve ora-4030", the only casual answer possible is "get more memory or reduce your need for memory". Given that I have no context, nothing to work with, no example, no "we were doing this" - that's all we can say....

Rating

  (20 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

some more thoughts on this please

reader, January 05, 2009 - 11:38 am UTC

Dear Tom,

as you have listed few out of many issues that can cause ora-04030 error, can we calculate memory useage of each session and adding all of this can we arrive at approx memory need on the DB server. I understand from you point that on Windows box (32 bit) we may hit windows limit if too many sessions are active. But if we get rough estimate of the memory required then it will help to say that how much more we need.

If you can please share how to get memory useage of each session, here I do understand that it's poosible that one of the stored procedure executed may ask much more memory than other procedures/sessions, but if you can please share your thoughts on this.

Thanking you in advance for your inputs on this.
Tom Kyte
January 05, 2009 - 11:46 am UTC

v$sesstat - look at "session pga memory max", that is the maximum pga each currently connected session has allocated.

or "session pga memory", that'll show the memory used by each session right now.


it will help you estimate this - if you have access to AWR/ASH information, you can look at the history.

ERROR ORA -12560

Priyanshu malik, January 22, 2009 - 8:54 am UTC

how do i solve error ORA 12560 on oracle..?????
Tom Kyte
January 22, 2009 - 9:27 am UTC

$ oerr ora 12560
12560, 00000, "TNS:protocol adapter error"
// *Cause: A generic protocol adapter error occurred.
// *Action: Check addresses used for proper protocol specification. Before
// reporting this error, look at the error stack and check for lower level
// transport errors. For further details, turn on tracing and reexecute the
// operation. Turn off tracing when the operation is complete.

ERROR MESSAGE ORA-04030

Hamish, January 26, 2009 - 9:07 pm UTC

I have experienced the same ORA-04030 error on our Oracle install of Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production, With the Real Application Clusters option on Enterprise Linux Server release 5.1 (Carthage). The stored procedure which gave me the memory outage error has been run on Oracle 8.x, 9.X and 10g for several years now without this problem. In fact I tried the same job on a WIN32 Oracle 11g install which had 1G of RAM and got the error even though our production Oracle install is a cluster RAC configuration running dual quads with 8G of RAM on each machine (2 machines in cluster).

We've looked at the Linux config settings which seem fine and played with the PGA only at this stage but still get the error. I believe 11g must have some kind of new default setting which is restricting/governing how much memory a process can consume. I have also noticed that long running jobs which took 10 hours on prior versions of Oracle now take a week or more on 11g.

Any more thoughts/ideas would be great thanks.

SQL> exec loadvgo_web_dli(0);
BEGIN loadvgo_web_dli(0); END;

*
ERROR at line 1:
ORA-04030: out of process memory when trying to allocate 8176 bytes
(kxs-heap-w,qesaQBInit:buffer)
ORA-06512: at "DLIMGR.LOADVGO_WEB_DLI", line 222
ORA-06512: at "DLIMGR.LOADVGO_WEB_DLI", line 348
ORA-06512: at line 1

AND

SQL> exec step_five;
BEGIN step_five; END;

*
ERROR at line 1:
ORA-04030: out of process memory when trying to allocate 8224 bytes (qesca subheap,qerjo hash table)
ORA-06512: at "DLIMGR.PKGPARCELCONVERTER_DLI", line 1289
ORA-06512: at "DLIMGR.STEP_FIVE", line 9
ORA-06512: at line 1
Tom Kyte
January 28, 2009 - 8:14 am UTC

what are your ulimits for the oracle account.

ORA-04030: out of process memory

Anne, March 10, 2009 - 6:08 pm UTC

Hi Tom,

We are getting the foll. error from a view. Database is 10.2.0.4.

select *
from vw_c_block_abk_1
;

ERROR at line 1:
ORA-04030: out of process memory when trying to allocate 572 bytes (Typecheck,kkecs : voppuvs)


This view is a join of 3 other views and has a scalar query that gets empl_name from remote_db
select ...
, nvl ((select dv_employee_fml_name
from dm_employee.dnr_employee@remote_db
where dv_employee_id = cb.cruiser_id
and rownum = 1), '-') as cruiser_name
.....
from .....
;

If this field is commented out, the query runs fine.

There are other views that reference ths same remote table and they work fine.


I tried a trace but the trace did not show the error.

1.

ulimit is set to unlimited
2.

tkprof:
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 3 0.00 0.00 0 0 0 0
Execute 3 0.00 0.01 0 0 0 2
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6 0.00 0.01 0 0 0 2

Misses in library cache during parse: 0

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 8 0.00 0.00
SQL*Net message from client 8 7.41 14.38
single-task message 1 0.04 0.04
SQL*Net message to dblink 52 0.00 0.00
SQL*Net message from dblink 52 0.00 0.02
SQL*Net break/reset to client 2 0.00 0.00


OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 4376 0.10 0.08 0 0 1 0
Execute 4376 0.52 0.53 0 0 0 0
Fetch 4376 0.12 0.12 440 8799 0 4376
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 13128 0.75 0.74 440 8799 1 4376

Misses in library cache during parse: 2
Misses in library cache during execute: 2

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 440 0.00 0.00

3 user SQL statements in session.
4376 internal SQL statements in session.
4379 SQL statements in session.

3.
system parameters:

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 1536M
sga_max_size big integer 1536M
sga_target big integer 1536M
hash_area_size integer 1048576
sort_area_size integer 524288

Previous pga_aggregate_target
pga_aggregate_target big integer 801M

4.
Statspack 1:


STATSPACK MESSAGE WHEN pga_target was 801M:
-------------------------------------------


PGA Cache Hit % W/A MB Processed Extra W/A MB Read/Written
--------------- ---------------- -------------------------
100.0 20 0

Warning: pga_aggregate_target was set too low for current workload, as this
value was exceeded during this interval. Use the PGA Advisory view
to help identify a different value for pga_aggregate_target.

%PGA %Auto %Man
PGA Aggr Auto PGA PGA Mem W/A PGA W/A W/A W/A Global Mem
Target(M) Target(M) Alloc(M) Used(M) Mem Mem Mem Bound(K)
- --------- --------- ---------- ---------- ------ ------ ------ ----------
B 801 295 500.8 0.0 .0 .0 .0 102,400
E 801 703 46.9 0.0 .0 .0 .0 102,400
-------------------------------------------------------------

PGA Aggr Target Histogram DB/Inst: TSMMNDNR/tsmmndnr Snaps: 26-27
-> Optimal Executions are purely in-memory operations

Low High
Optimal Optimal Total Execs Optimal Execs 1-Pass Execs M-Pass Execs
------- ------- -------------- ------------- ------------ ------------
2K 4K 293 293 0 0
64K 128K 6 6 0 0
512K 1024K 24 24 0 0
1M 2M 2 2 0 0
-------------------------------------------------------------

PGA Memory Advisory DB/Inst: TSMMNDNR/tsmmndnr End Snap: 27
-> When using Auto Memory Mgmt, minimally choose a pga_aggregate_target value
where Estd PGA Overalloc Count is 0

Estd Extra Estd PGA Estd PGA
PGA Target Size W/A MB W/A MB Read/ Cache Overalloc
Est (MB) Factr Processed Written to Disk Hit % Count
---------- ------- ---------------- ---------------- -------- ----------
100 0.1 2,810.0 4.3 100.0 5
200 0.3 2,810.0 4.3 100.0 5
401 0.5 2,810.0 4.3 100.0 5
601 0.8 2,810.0 0.0 100.0 2
801 1.0 2,810.0 0.0 100.0 2
961 1.2 2,810.0 0.0 100.0 1
1,121 1.4 2,810.0 0.0 100.0 0
1,282 1.6 2,810.0 0.0 100.0 0
1,442 1.8 2,810.0 0.0 100.0 0
1,602 2.0 2,810.0 0.0 100.0 0
2,403 3.0 2,810.0 0.0 100.0 0
3,204 4.0 2,810.0 0.0 100.0 0
4,806 6.0 2,810.0 0.0 100.0 0
6,408 8.0 2,810.0 0.0 100.0 0
-------------------------------------------------------------

______________________________________________________________________________


5.
Statspack 2:

Due to the Warning "pga_aggregate_target was set too low for current workload", we increased the pga_aggregate_target


STATSPACK MESSAGE WHEN pga_target was increased to 1536M
--------------------------------------------------------



PGA Cache Hit % W/A MB Processed Extra W/A MB Read/Written
--------------- ---------------- -------------------------
100.0 19 0

%PGA %Auto %Man
PGA Aggr Auto PGA PGA Mem W/A PGA W/A W/A W/A Global Mem
Target(M) Target(M) Alloc(M) Used(M) Mem Mem Mem Bound(K)
- --------- --------- ---------- ---------- ------ ------ ------ ----------
B 1,536 1,366 45.9 0.0 .0 .0 .0 114,646
E 1,536 1,365 46.3 0.0 .0 .0 .0 114,646
-------------------------------------------------------------

PGA Aggr Target Histogram DB/Inst: TSMMNDNR/tsmmndnr Snaps: 28-29
-> Optimal Executions are purely in-memory operations

Low High
Optimal Optimal Total Execs Optimal Execs 1-Pass Execs M-Pass Execs
------- ------- -------------- ------------- ------------ ------------
2K 4K 55 55 0 0
64K 128K 6 6 0 0
512K 1024K 22 22 0 0
1M 2M 2 2 0 0
-------------------------------------------------------------

PGA Memory Advisory DB/Inst: TSMMNDNR/tsmmndnr End Snap: 29
-> When using Auto Memory Mgmt, minimally choose a pga_aggregate_target value
where Estd PGA Overalloc Count is 0

Estd Extra Estd PGA Estd PGA
PGA Target Size W/A MB W/A MB Read/ Cache Overalloc
Est (MB) Factr Processed Written to Disk Hit % Count
---------- ------- ---------------- ---------------- -------- ----------
192 0.1 30.2 0.0 100.0 0
384 0.3 30.2 0.0 100.0 0
768 0.5 30.2 0.0 100.0 0
1,152 0.8 30.2 0.0 100.0 0
1,536 1.0 30.2 0.0 100.0 0
1,843 1.2 30.2 0.0 100.0 0
2,150 1.4 30.2 0.0 100.0 0
2,458 1.6 30.2 0.0 100.0 0
2,765 1.8 30.2 0.0 100.0 0
3,072 2.0 30.2 0.0 100.0 0
4,608 3.0 30.2 0.0 100.0 0
6,144 4.0 30.2 0.0 100.0 0
9,216 6.0 30.2 0.0 100.0 0
12,288 8.0 30.2 0.0 100.0 0
-------------------------------------------------------------



6. While running : select * from vw_c_block_abk_1

select name, value
from v$pgastat
;

NAME VALUE
---------------------------------------------------------------- ----------
aggregate PGA target parameter 1610612736
aggregate PGA auto target 1434461184
global memory bound 117397504
total PGA inuse 16762880
total PGA allocated 40198144
maximum PGA allocated 1047208960
total freeable PGA memory 6356992
process count 16
max processes count 20
PGA memory freed back to OS 1.2068E+10
total PGA used for auto workareas 0
maximum PGA used for auto workareas 8470528
total PGA used for manual workareas 0
maximum PGA used for manual workareas 536576
over allocation count 7
bytes processed 3052453888
extra bytes read/written 0
cache hit percentage 100
recompute count (total) 100140

19 rows selected.


7.

select name, value
from v$statname n, v$sesstat t
where n.statistic# = t.statistic#
and t.sid = ( select sid from v$mystat where rownum = 1 )
and n.name in ( 'session pga memory', 'session pga memory max',
'session uga memory', 'session uga memory max')
/
NAME VALUE
---------------------------------------------------------------- ----------
session uga memory 222092
session uga memory max 607508
session pga memory 781908
session pga memory max 1175124


Could you please help out on how to resolve with this error? (As a temporary fix, I created a Materialized view that selects from remote_db, and then pointed the View source to the MV insted of direct dblink)

Thanks and Appreciate your help.

ORA-04030: out of process memory

Anne, March 11, 2009 - 8:56 am UTC

Hi Tom,

I missed mentioning the Memory and Swap size :

Mem: 4082748k
Swap: 4192924k

Thanks so much!
Tom Kyte
March 12, 2009 - 7:32 am UTC

please utilize support for this one

ORA_04030 -

Anne, March 12, 2009 - 9:02 am UTC

Thanks Tom. Yes we already filed an SR yesterday - no updates yet.

Thanks!

ORA-4030 despite of huge RAM and small settings of PGA_AGGREGATE_AREA

A reader, September 23, 2011 - 7:18 am UTC

Tom,

I am analyzing ORA-4030 (really lots of them, daily) on the following server:

Oracle 11.2.02. on AIX server with 68 GB RAM
memory_target set to 3 GB
pga_aggregate_area set to 500 M

no other application running on the server -it is dedicated db server , pls don't ask why they assigned only 3 GB of 68 RAM to the DB.

My question - how it is possible to get ORA-4030 in such configuration? I have an experience with ORA-4030/4031 in 32-bit windows world when OS can manage less memory (due to defragmentations and OS limits) than db requires, but in this case? Only about 5 % of RAM is assigned to db...
Or my understanding of ORA-4030 is incorrect? Here is your explanation of it: >> ... Whatever you were doing hit the limit on OS memory that could be allocated to you ...<<

So normally I should reduce the db settings, but not under 5 % of RAM?

Thanks in advance
Tom Kyte
September 23, 2011 - 9:45 am UTC

ora-4030 happens when a process makes a request to the OS for memory and the OS says "I'm totally out of memory or you have hit your limit on memory"

Have you system administrator check out things like the ulimit set on the account that starts the dedicated server (your account if you are logged onto the machine and not using sqlnet, the listeners account if you are letting the listener start the dedicated server).

if you are monitoring the machine, do you see dedicated servers getting an absurd amount of memory allocated?

Alexander, September 23, 2011 - 2:57 pm UTC

I've experienced this....my money is on someone getting cute in a plsql program.

ORA-04030,

A reader, August 17, 2012 - 3:22 pm UTC

Recently we upgraded our database from 11.1.0.7 to 11.2.0.3 and the clusterware also got upgraded to 11.2.0.3. there are no changes in application and nothing drastic about the volume of data in the tables. however, the application team started seeing ora-4030 error. The memory on the server (which has 128GB of RAM) showing 80% or more consumed.

I check the AWR report for the database and the PGA consumption is around 500MB for the entire 24 hour period (not much).

Where to check the process that is sucking up the hardware resources? Are there any difference in the way oracle background process work in 11.2.0.3 or even the way clusterware?

Thanks,

Tom Kyte
August 17, 2012 - 3:39 pm UTC

are you sure the machine was really exhausted of memory - could a ulimit have slipped in there somewhere?


follow up,

A reader, August 17, 2012 - 4:18 pm UTC

ulimit is set to unlimited

g1u0527c:oracle/stage $ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 3023196
stack(kbytes) 392192
memory(kbytes) unlimited
coredump(blocks) 4194303
nofiles(descriptors) 63488

At this particular time:

Physical memory = 33487575 127.7g 100%
Free memory = 9515970 36.3g 28%

Some of the top processes are:


virtual physical swap
pid ppid pages / bytes pages / bytes pages / bytes command
26454 1 163126 637.2m 108079 422.2m 116661 455.7m crsd.bin
7074 1 2414643 9.2g 86521 338.0m 128966 503.8m oracle
15675 1 2389849 9.1g 85617 334.4m 104158 406.9m oracle
1872 1 2376096 9.1g 83665 326.8m 90331 352.9m oracle
10023 1 2382526 9.1g 83374 325.7m 96777 378.0m oracle
28809 1 2378142 9.1g 82109 320.7m 92397 360.9m oracle
20813 1 2377380 9.1g 81485 318.3m 91621 357.9m oracle

The above information was given by our sysadmin. I am still trying to interpret this.

Thanks,

ORA-04030 callheap,temporary memory

Peter, September 18, 2012 - 1:35 am UTC

ORA-04030: out of process memory when trying to allocate 512 bytes (callheap,temporary memory)
Oracle Version:11gR1 64bit
OS:SUSE Linux Enterprise Server 10 (i586)
Shared server/ dedicated :shared

error info:
<txt>Errors in file /opt/oracle/diag/rdbms/suseora/suseora/trace/suseora_pmon_27118.trc:
ORA-04030: out of process memory when trying to allocate 512 bytes (callheap,temporary memory)
</txt>

2012/08/29 09:40:04 VCS WARNING V-16-20002-207
Oracle:db_oracle:monitor:Open for ora_pmon failed, setting cookie to null


Tom Kyte
September 20, 2012 - 1:55 am UTC

ok, so you are out of memory.

did you have a question? or a comment?

How come not flushing to disk?

Galen Boyer, September 18, 2012 - 8:59 am UTC

Hi Tom,

How come Oracle cannot or did not decide to write large collections to disk when they start getting too large?
Tom Kyte
September 20, 2012 - 1:58 am UTC

because we do not employ virtual memory management for program data structures since the OS already does that - the OS does virtual memory, we do not.

If you want things to start flushing to disk when you exhaust real memory, configure big swap. And then be prepared for the inevitable result.

Otherwise, keep your programming data structures a reasonable size - just like you do in java, C, C++, C#, Ada, PL/I, Cobol, etc etc etc etc etc etc etc...



If you want a collection to be paged to disk, leave it in the table and query it from there - or put it into a global temporary table and query it from there.

ERROR MESSAGE ORA-04030 on 64-bit version

A reader, September 19, 2012 - 2:55 am UTC

Dear Tom,
Our running environment is below:
Oracle Version:11gR1 64bit
OS:SUSE Linux Enterprise Server 10 (i586)
Now,the quantitiy of business visit is very short,but after a period,the oracle will throw ora-04030 error.The detail information:
<msg time='2011-11-20T21:28:56.386+02:00' org_id='oracle' comp_id='rdbms'
client_id='' type='UNKNOWN' level='16'
module='' pid='6323'>
<txt>Errors in file /opt/oracle/diag/rdbms/suseora/suseora/trace/suseora_pmon_6323.trc:
ORA-04030: out of process memory when trying to allocate 512 bytes (callheap,temporary memory)
</txt>
</msg>

Pl suggest how to solve it.
Thx
Peter

Tom Kyte
September 20, 2012 - 5:41 am UTC

get more memory?

check your ulimit settings to make sure you are not limiting memory?

contacting support with a tad bit MORE information so they can actually diagnose something?



How about this, I have a 2004 toyota prius, it will not start. My 2003 toyota is starting just fine. what is wrong?

ERROR MESSAGE ORA-04030 on 64-bit version

A reader, September 19, 2012 - 3:57 am UTC

Stopping background process MMNL
Stopping background process MMON
Shutting down instance (immediate)
License high water mark = 5
ALTER DATABASE CLOSE NORMAL
Mon Nov 21 02:35:16 2011
SMON: disabling tx recovery
SMON: disabling cache recovery
Mon Nov 21 02:35:16 2011
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Thread 1 closed at log sequence 27
Successful close of redo thread 1
Completed: ALTER DATABASE CLOSE NORMAL
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Mon Nov 21 02:35:17 2011
Stopping background process VKTM:
Mon Nov 21 02:35:20 2011
Instance shutdown complete
Mon Nov 21 02:38:14 2011
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter default value as /opt/oracle/product/11gR1/db/dbs/arch
Autotune of undo retention is turned on.
IMODE=BR
ILAT =36
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 11.1.0.6.0.
Using parameter settings in server-side pfile /opt/oracle/product/11gR1/db/dbs/initsuseora.ora
System parameters with non-default values:
processes = 300
spfile = "/dev/datavg/spfile"
sga_target = 512M
control_files = "/dev/datavg/control01"
control_files = "/dev/datavg/control02"
control_files = "/dev/datavg/control03"
db_block_size = 8192
compatible = "11.1.0.0.0"
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = ""
audit_file_dest = "/opt/oracle/admin/suseora/adump"
audit_trail

looks like the tip to check ulimit - fruitful

Mort Coleman, November 08, 2012 - 2:05 pm UTC

Oracle recommended the stack be unlimited and we had it limited to 4GB.

clarification

A reader, May 09, 2013 - 9:54 pm UTC

if user A using jdbc connection to access procdure owned by user B. whose ulimit is are used user A or user B ?


when a procedure is running under oracle, does oracle ulimit is used in memory allocation ?
Tom Kyte
May 09, 2013 - 10:02 pm UTC

apples and oranges.

ulimits are OS process limits based on operating system user accounts.

user A and user B are database users, the OS knows nothing about them.


the process (either a dedicated server, a shared server or a pool dedicated server with a database resident connection pool) will run as some OS user (for the life of the process) and the OS will ulimit that process based on the user it is running as.


ORA-4030

Kevin Burgess, March 04, 2015 - 12:27 pm UTC

Hi Tom,

I have just rewritten our RMAN Scripts and on every machine except one (our biggest!) it works. On the last machine (an M5000 with 256GB RAM) it Fails with the following error:

RMAN-03009: failure of backup command on ORA_DISK_7 channel at 03/04/2015 12:22:29
RMAN-10015: error compiling PL/SQL program
RMAN-10033: error during compilation of job step 7: ORA-00603: ORACLE server session terminated by fatal error
ORA-04030: out of process memory when trying to allocate 272 bytes (PL/SQL DIANA,PTG: Node)


Loooking through this threadI found the following code and ran it on the Server:

select name, value
from v$statname n, v$sesstat t
where n.statistic# = t.statistic#
and t.sid = ( select sid from v$mystat where rownum = 1 )
and n.name in ( 'session pga memory', 'session pga memory max','session uga memory', 'session uga memory max')


The result:

NAME VALUE
---------------------------------------------------------------- ----------
session uga memory 225432
session uga memory max 225432
session pga memory 900248
session pga memory max 900248


In this thread I read that reducing the size of the PGA could resolve the Problem but when I have interpreted this Output correctly I Need to increase the size of the PGA.

That I have never had this Problem on this Server in the past is a curiosity for me.

Any hints or tips that can help?

Regards,
Kev

Sometimes its gook to double check

Thomas, May 23, 2016 - 6:17 am UTC

We had ORA-04030 errors in a 12c db when running a rather heavy statement. It worked in 11.2/Linux. It worked on 12c/AIX when runnĂ­ng from the server. But, it ended with an ORA-04030 error where running through sql*net. We tried changing the Oracle memory parameters, wew tried changing the OS parameters but nothing helped. It was the sql*net/listener configuration.
Connor McDonald
May 23, 2016 - 6:19 am UTC

That's very interesting - are there any more details you could provide, in terms of what the root cause was, and what action you ended up taking.

Thanks,
Connor

Same Error different solution

Ken, August 09, 2017 - 4:31 pm UTC

We encountered an ora004030 today in our 11.2.0.4 database.
After some digging we found the culprit was a bitmap index.
We tried rebuilding it with no success.
After dropping and recreating it, the problem went away.

Ken

Same error but the reason is simple

Alex S, August 05, 2018 - 6:20 pm UTC

The error can be result of recursive procedure call,
when required stack size exceeds available pga memory.
This is guaranteed if recursion is erroneous:

create or replace procedure p(p_msg varchar2)
as
begin
p(p_msg);
end p;
/
exec p(test);

Chris Saxon
August 06, 2018 - 12:33 pm UTC

Thanks for sharing.