0

当我尝试备份我的 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: 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

我该如何解决这个问题?

4

2 回答 2

1

SGA 的共享池部分内存不足。

由于您似乎使用 XE 11g,我假设您使用的是自动内存管理。所以我会首先尝试增加初始化参数MEMORY_TARGETMEMORY_MAX_TARGET如果超过 new MEMORY_TARGET)。

请注意,您在 XE 中被限制为最大 1GB(请参阅http://docs.oracle.com/cd/E17781_01/install.112/e18802/toc.htm#BABHJHHC)。

要更改它以 SYS 身份执行:alter system set MEMORY_TARGET=1GB;

要使用附加参数更改MEMORY_MAX_TARGET执行scope=pfile,您将不得不重新启动实例。

如果这没有帮助(已设置最大 1GB):部分禁用 AMM 并将初始化参数设置shared_pool_size为 250MB(或更多)以扩大共享池(以其他组件为代价,缓冲区缓存,...)并尝试再次。

在 SGA 使用中查看当前分配给池的内存

select nvl(pool,name) pool
      ,sum(bytes)/1024/1024 MB 
  from v$sgastat 
 group by nvl(pool,name)
;

如果共享池已经是最大的并且您已经处于 1GB 的限制,memory_target那么我担心您对 XE 不走运,应该考虑标准版。

于 2012-07-24T12:51:33.543 回答
1

跟随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
于 2018-07-26T09:36:24.880 回答