ORA-4031: unable to allocate 4160 bytes of shared memory ("shared pool","unknown object","sga heap(4,0)","modification ")
(Doc ID 1675470.1)
Last updated on APRIL 22, 2023
Applies to:
Oracle Database - Enterprise Edition - Version 11.2.0.3 and laterOracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Gen 1 Exadata Cloud at Customer (Oracle Exadata Database Cloud Machine) - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Information in this document applies to any platform.
Symptoms
Next error is being reported in the alert log file frequently:
ORA-04031: unable to allocate 4160 bytes of shared memory ("shared pool","unknown object","sga heap(4,0)","modification ")
In a heapdump of instance we can see:
- the duration 0 of every subpool has little free memory and PERM allocations are very high
- there is free memory for other durations of these subpools
For instance on subpool 4, duration 0:
HEAP DUMP heap name="sga heap(4,0)" desc=0x600721e8
Count Sum Average ~~~~ ~~~~~ ~~~ ~~~~~~~ R-freeable 8 384 48.00 R-free 4 3357904 839476.00 perm 6 63741624 10623604.00 free 3 8600 2866.67 BreakDown ~~~~~~~~~ reserved stoppe 8 384 48.00 0.00 Free(heap.awk) 7 3366504 480929.14 5.02 <================== perm 6 63741624 10623604.00 94.98 <================== Total = 67108512 bytes 65535.66k 64.00MB Total PERMANENT memory actually used is 48108768 Largest CONTIGUOUS free memory (NORMAL) was 3704 ( 3.62k) <==================
Other durations of subpool 4 have enough free space.
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |