记录一次impdp 导入报错,UDI-31623 ,但是观察Db alert可以发现存在ORA-04031的报错,内存不足???
IMPDP UDI-31623 ORA-31623 ORA-06512 观察db alert 出现ORA-04031 ORA-04031: unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback")
#free -g
60 g 操作系统内存!
查询DB内存参数
SQL>show parameter sga
->500M!!! max
SQL>show parameter streams
->0 说明是自动分配内存的
此视图基于自实例启动以来所有已完成的SGA调整大小操作总结信息。所有大小均以字节表示。
SQL>select * from v$sga_dynamic_components where component like 'streams pool%';
MAX_SIZE=8,388,608 =>8Mbytes ???非常小
LAST_OPER_TYPE=GROW => 最后的类似是增长
LAST_OPER_MODE=IMMEDIATE=>立即分配的方式 从这些信息,可以发现Streams pool并无异常,且非常小就无法申请到足够的内存了,明显是由于内存不足导致的。
CURRENT_SIZE=4,194,304 =>当前大小
GRANULE_SIZE=4,194,304 =>申请扩的大小,才申请4M内存就无法获得了。。。
参考MOS
PMON Process Repeats ORA-4031 After Expdp Session Fails With ORA-4031 ("streams pool","unknown object","streams pool",
"fixed allocation callback") (Doc ID 2333337.1)
select * from v$sga_dynamic_components where component like 'streams pool%';
alter system set streams_pool_size=<larger than CURRENT_SIZE>;
处理 加大SGA_MAX内存大小 SQL>show parameter spfile 确认spfile参数启动的db SQL>create pfile='/tmp/bk_pfile.ora' from spfile; 备份参数文件 SQL>alter system set sga_max_size=30g scope=spfile; SQL>shutdown immediate; SQL>startup;
重新导入!