问题现象
2026年9月24日,Oracle 数据库在执行 update、exp 和 expdp 操作时均失败,报错 ORA-4031(无法分配共享内存)。



Trace分析
无法分配内存给streams pool(expdp需要使用)

子池无法分配内存

数据库内存分配状态分析
主机内存充足(截图略)
sga使用情况

多次error记录

建议分配sga大小(数据库视图计算)

pga使用情况

共享池使用情况


处理步骤
show parameter pfile
create pfile='/tmp/pfiledb20260924.ora' from spfile;
alter system set streams_pool_size=256m scope=spfile;
alter system set "_enable_shared_pool_durations"=false scope=spfile sid='*';
alter system set sga_max_size =8G scope=spfile;
alter system set sga_target =8G scope=spfile;
alter system set db_cache_size =2G scope=spfile;
alter system set shared_pool_size =2G scope=spfile;
问题分析总结
通过对现有信息的分析,可以看到4031是由于sga过小引起。
处理/优化建议
针对现有情况,建议如下:
1.关闭子池特性
2.扩容sga到8G
