相信大家都有遇到ora-04031这种错误,在导出时也有这样的错误出现。
问题的症状:
expdp 报告如下错误:
ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_FULL_01 for user SYSTEM
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 600
ORA-39080: failed to create queues "KUPC$C_1_20070823095248" and "KUPC$S_1_20070
823095248" for Data Pump job
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 1580
ORA-04031: unable to allocate 4194344 bytes of shared memory ("streams pool","unknown object","streams
pool","fixed allocation callback
问题原因:
这个问题是由于设置了 初始化参数streams_pool_size 的值为0,错误的第一个提示 streams pool 就能够说明问题的原
因。
ora-4031 一般说明内存过小,应该加大内存的大小。
解决办法:
设置 初始化参数streams_pool_size 的值 最小为48m
alter system set streams_pool_size =48m;
Note: for a large database and/or high workload, the STREAMS_POOL_SIZE parameter may need to be higher
(如 150 MB) in order to avoid the ORA-4031 errors.