作者:曾经的我们太矫情_377 | 来源:互联网 | 2018-07-10 10:35
操作系统:AIX6.1Oracle数据库版本:11.1.0.7.01、使用expdp导出的时候,报ORA-04030:outofprocessmemorywhentryingto&nb..
操作系统: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、重启操作系统后,参数生效,,导出不再报错
本文出自 “斜阳悠悠寸草心” 博客,请务必保留此出处