ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 谁动了你的内存(白俄ORA-04030)

谁动了你的内存(白俄ORA-04030)

原创 Linux操作系统 作者:wangsir_918 时间:2011-07-19 21:14:43 0 删除 编辑

ORA-04030:out of process memory when trying to allocate string bytes
产生该错误的直接原因是oracle服务器无法从操作系统中分配内存(PGA、UGA)给新的连接

可能的原因是:
1)操作系统内存耗尽
2)os、db级别的内存使用限制
3)oracle内存分配的是否合理

1)白俄DB的物理内存为8G,交换分区为2G
观察得出物理内存的使用率都在99%以上;虚拟内存的使用率在40%到70%之间
虚拟内存的使用率偏高,可以通过填内存、优化应用的减少排序的方式,来降低使用率

2)内存分配限制
(1)查看操作系统内存限制:
MSKiptv2-scp-1:~ # ulimit -a
core file size        (blocks, -c) unlimited
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 8192
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) unlimited
cpu time             (seconds, -t) unlimited
max user processes            (-u) 73728
virtual memory        (kbytes, -v) unlimited

上面显示操作系统没有做内存限制

(2)内核参数:
白俄:
MSKiptv2-scp-1:~ # /sbin/sysctl -p
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
内核参数未作调整
在suse 64bit操作系统上安装64bit的oracle需要调整内核参数,现网没有做任何调整
需要将附件中文件分别上传到/etc/和/etc/security/下
#dos2unix /etc/sysctl.conf
#dos2unix /etc/security/limits.conf
#sysctl -p
#chkconfig boot.sysctl on

(3)oracle内存分配
1、SGA设置如下:
SQL> show parameters sga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 1600M
sga_target                           big integer 0
SGA设置为1600M,且未设置成自动管理(sga_target为0),需要将其设置成sga_max_size大小

2、PGA设置
PGA只有400m  这个值相对太小了,由于workarea_size_policy为auto,查看PGA历史上使用的峰值为:
NAME                                                                  VALUE UNIT
---------------------------------------------------------------- ---------- ------------
maximum PGA allocated                                            7052241920 bytes
最高峰为6.5个G

SGA和PGA的设置不足是导致ORA-04030错误的原因之一,建议分别设置成4G、1G
另外需要查看十点到十二点的top SQL 优化代码,减少排序

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25801738/viewspace-702590/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: awr报告专题
请登录后发表评论 登录
全部评论

注册时间:2011-07-18

  • 博文量
    40
  • 访问量
    87308