Oracle11g 无法分配x字节的共享内存
当我试图备份我的oracle数据库时,我发现了以下错误Oracle11g 无法分配x字节的共享内存,oracle11g,oracle-xe,datapump,Oracle11g,Oracle Xe,Datapump,当我试图备份我的oracle数据库时,我发现了以下错误 UDE-04031: operation generated ORACLE error 4031 ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","SELECT j ob_id FROM v$datapum...","SQLA","tmp") ORA-06512: at "SYS.KUPV$FT_INT", line 2904 ORA-06512:
UDE-04031: operation generated ORACLE error 4031
ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","SELECT j
ob_id FROM v$datapum...","SQLA","tmp")
ORA-06512: at "SYS.KUPV$FT_INT", line 2904
ORA-06512: at "SYS.KUPC$QUE_INT", line 572
ORA-25254: time-out in LISTEN while waiting for a message
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3326
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4551
ORA-06512: at line 1
如何解决此问题?SGA的共享池部分内存不足 由于您似乎在使用XE11G,我假设您正在使用自动内存管理。所以我会先试试 增加初始化参数
内存\u目标
(如果新的内存\u目标
,则增加内存\u最大\u目标
)
注意:XE中的最大容量限制为1GB(请参阅)
要更改它,请按SYS执行:alter system set MEMORY\u TARGET=1GB代码>
要更改MEMORY\u MAX\u TARGET
请使用附加参数scope=pfile
执行,您必须重新启动实例
如果这没有帮助(已设置最大1GB):部分禁用AMM,并将初始化参数共享池大小设置为250MB(或更多),以扩大共享池(以其他组件、缓冲区缓存等为代价),然后重试
也可以在SGA使用中查看当前分配给池的内存
select nvl(pool,name) pool
,sum(bytes)/1024/1024 MB
from v$sgastat
group by nvl(pool,name)
;
如果共享池已经是最大的,并且您的内存目标已经达到1GB的限制,那么我担心您在XE上运气不佳,应该考虑使用标准版。以下GWu答案
以下是为Oracle Express 11.2保存我的一天的命令(当然,您可以更改参数值)
ALTER SYSTEM SET MEMORY_MAX_TARGET=1000m SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_TARGET=1000m SCOPE=SPFILE;
SHUTDOWN IMMEDIATE
STARTUP