首页 >数据库 >mysql教程 >expdp报ORA-04030 out of process memory错误

expdp报ORA-04030 out of process memory错误

WBOY
WBOY原创
2016-06-07 17:37:211248浏览

操作系统:AIX6.1Oracle数据库版本:11.1.0.7.01、使用expdp导出的时候,报ORA-04030:outofprocessmemorywhentryingto&nb..

操作系统:AIX 6.1
Oracle数据库版本:11.1.0.7.0
     1、使用expdp导出的时候, 报ORA-04030: out of process memory when trying to allocate 120048 bytes错误,
           具体如下所示:

ORA-39082: Object type ALTER_PROCEDURE:"INDEXAPP"."PA_INDEX_PORTAL_UV_D" created with compilation warnings Processing object type SCHEMA_EXPORT/VIEW/VIEW ORA-39082: Object type VIEW:"INDEXAPP"."TA_CONTENT_AUDIT_USER_D" created with compilation warnings Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS ##ORA-39014: One or more workers have prematurely exited. ORA-39029: worker 1 with process name "DW01" prematurely terminated ORA-31671: Worker process DW01 had an unhandled exception. ORA-04030: out of process memory when trying to allocate 120048 bytes (session heap,kuxLpxAlloc) ORA-06512: at "SYS.KUPW$WORKER", line 1602 ORA-06512: at line 2

     2、以oracle用户执行ulimit -a,对于用户进程使用的内存是有限制的,如下所示:

$ ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) 256000 stack(kbytes) 256000 memory(kbytes) 256000 coredump(blocks) unlimited nofiles(descriptors) 2000 threads(per process) unlimited processes(per user) unlimited

      3、切换到root,在/etc/security/limits文件添加如下内容,(-1代表不限制):

oracle: data = -1 stack_hard = -1 stack = -1 rss = -1 core = -1 nofiles = -1

      4、查看新增以上内容后的/etc/security/limits文件:

$ su - root root's Password: # cat /etc/security/limits * * Sizes are in multiples of 512 byte blocks, CPU time is in seconds * * fsize - soft file size in blocks * core - soft core file size in blocks * cpu - soft per process CPU time limit in seconds * data - soft data segment size in blocks * stack - soft stack segment size in blocks * rss - soft real memory usage in blocks * nofiles - soft file descriptor limit * fsize_hard - hard file size in blocks * core_hard - hard core file size in blocks * cpu_hard - hard per process CPU time limit in seconds * data_hard - hard data segment size in blocks * stack_hard - hard stack segment size in blocks * rss_hard - hard real memory usage in blocks * nofiles_hard - hard file descriptor limit * * The following table contains the default hard values if the * hard values are not explicitly defined: * * Attribute Value * ========== ============ * fsize_hard set to fsize * cpu_hard set to cpu * core_hard -1 * data_hard -1 * stack_hard 8388608 * rss_hard -1 * nofiles_hard -1 * * NOTE: A value of -1 implies "unlimited" * default: fsize = -1 core = -1 cpu = -1 data = 512000 rss = 512000 stack = 512000 nofiles = 2000 root: data = -1 stack_hard = -1 stack = -1 rss = -1 core = -1 nofiles = -1 oracle: data = -1 stack_hard = -1 stack = -1 rss = -1 core = -1 nofiles = -1 daemon: bin: sys: adm: uucp: guest: nobody: lpd: pconsole: stack_hard = 131072 data = 1280000 data_hard = 1280000 esaadmin: stack = 393216 stack_hard = 393216

          5、切换到oracle用户,执行ulimit -a,结果显示如下:

# su - oracle $ ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) unlimited stack(kbytes) unlimited memory(kbytes) unlimited coredump(blocks) unlimited nofiles(descriptors) unlimited threads(per process) unlimited processes(per user) unlimited

     6、再次执行expdp导出,仍旧报一样的错误
     7、重启操作系统后,参数生效,,导出不再报错

本文出自 “斜阳悠悠寸草心” 博客,请务必保留此出处

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn