DataPump Export (EXPDP) Fails With Error ORA-04031: unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback")


  • Datapump export (EXPDP) fails with below error. 
UDE-31623: operation generated ORACLE error 31623
ORA-31623: a job is not attached to this session via the specified handle
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4747
ORA-06512: at "SYS.KUPV$FT_INT", line 2144
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.KUPV$FT_INT", line 2081
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2263
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4496
ORA-06512: at "SYS.DBMS_DATAPUMP", line 6127
ORA-06512: at line 1

  • Database alert log shows below error.    

2024-05-10T13:31:13.693011+00:00
Errors in file /u01/app/oracle/diag/rdbms/spmqa/spmqa/trace/spmqa_ora_17958080.trc (incident=41575):
ORA-04031: unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback")
Incident details in: /u01/app/oracle/diag/rdbms/spmqa/spmqa/incident/incdir_41575/spmqa_ora_17958080_i41575.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2024-05-10T13:31:56.555592+00:00
  • The Streams pool stores buffered queue messages and provides memory for Oracle Streams capture processes and apply processes.
SQL> show parameter stream
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
  • Setting STREAMS_POOL_SIZE>0 will guarantee a minimum size for streams pool when using ASMM or AMM, hence avoiding the ORA-4031. 

SQL> alter system set streams_pool_size=50m;

System altered.
SQL> show parameter streams
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 50M

  • Export will complete with this workaround. 
 

Comments