你好,游客 登录 注册 搜索
背景:
阅读新闻

ORA-04030错误解决过程一例

[日期:2014-06-28] 来源:Linux社区  作者:datapeng [字体: ]

今天客户说从数据库后台发现报错,具体如下:

Errors in file /Oracle/linuxidc/saptrace/diag/rdbms/linuxidc/linuxidc/incident/incdir_183218/linuxidc_j003_8103_i183218.trc:
 ORA-04030: out of process memory when trying to allocate 1052696 bytes (pga heap,log read buffer)
 ORA-07445: exception encountered: core dump [kgdsdst()+16] [SIGSEGV] [ADDR:0xFFFFFFFF7FFB4634] [PC:0x1081A1C90] [Address not mapped to object] []
 
在查看的时候,并没有发现有什么语句问题的,检查系统限制如下:

root@linuxidc # ulimit -a
 core file size          (blocks, -c) unlimited
 data seg size          (kbytes, -d) unlimited
 file size              (blocks, -f) unlimited
 open files                      (-n) 256
 pipe size            (512 bytes, -p) 10
 stack size              (kbytes, -s) 8192
 cpu time              (seconds, -t) unlimited
 max user processes              (-u) 29995
 virtual memory          (kbytes, -v) unlimited

同时,报错中指出Address not mapped to object,可能存在没有足够的交换分区

紧接着,又有如下报错

Errors in file /oracle/linuxidc/saptrace/diag/rdbms/linuxidc/linuxidc/trace/linuxidc_psp0_27454.trc:
 ORA-27300: OS system dependent operation:fork failed with status: 12
 ORA-27301: OS failure message: Not enough space
 ORA-27302: failure occurred at: skgpspawn3

根据官网的介绍如下:

Cause

This issue is mainly caused by lack of memory / swap. Checking the memory configuration on the server, we have found the following
 

综合分析,报了04030的错误,而下面又分别报了27302及27301的错误。根据报错的意思,一方面,创建会话失败,另一方面,无法找到映射地址,所以怀疑与交换分区有关

--------------------------------------------------------------------------------

Linux-6-64下安装Oracle 12C笔记 http://www.linuxidc.com/Linux/2013-07/86805.htm

CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htm

Oracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htm

Debian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm

--------------------------------------------------------------------------------
 
该数据库是安装在solaris11上面的,检查如下:

root@linuxidc # swap -h -l
 swapfile            dev    swaplo  blocks    free
 /dev/zvol/dsk/rpool/swap 285,2        8K    4.0G    4.0G

交换分区只有4g,而物理内存有40g,显然过小,应该是由于这个问题引起的

解决办法就是扩展交换分区,solaris11的调整方法发生了变化,不同以前的版本

root@linuxidc:~# zfs set volsize=30g rpool/swap

检查调整结果:

root@linuxidc # swap -h -l
 swapfile            dev    swaplo  blocks    free
 /dev/zvol/dsk/rpool/swap 285,2        8K    4.0G    4.0G
 /dev/zvol/dsk/rpool/swap 285,2      4.0G      26G      26G

调整完成后,叫继续跟踪,结果几个星期过去后,再也没有报错!

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-06/103816.htm

linux
相关资讯       ORA-04030 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款