操作系统: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错误,
具体如下所示:
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) unlimited3、切换到root,在/etc/security/limits文件添加如下内容,(-1代表不限制):
oracle: data = -1 stack_hard = -1 stack = -1 rss = -1 core = -1 nofiles = -14、查看新增以上内容后的/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 = 3932165、切换到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、重启操作系统后,参数生效,,导出不再报错
本文出自 “斜阳悠悠寸草心” 博客,请务必保留此出处