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 NOVEMBER 28, 2016

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.3 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:


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

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms