【Oracle数据库】问题已解决:ORA-04030 私有内存超出

举报
Lucifer三思而后行 发表于 2021/10/28 12:48:30 2021/10/28
【摘要】 作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前主要从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。 前言今天巡检遇到数据库报错 ORA-04030 错误,错误日志如...

作者简介

  • 作者:LuciferLiu,中国DBA联盟(ACDU)成员。
  • 目前主要从事Oracle DBA工作,曾从事 Oracle 数据库开发工作,主要服务于生产制造,汽车金融等行业。
  • 现拥有Oracle OCP,OceanBase OBCA认证,擅长Oracle数据库运维开发,备份恢复,安装迁移,Linux自动化运维脚本编写等。

前言

  • 今天巡检遇到数据库报错 ORA-04030 错误,错误日志如下:
  • ORA-04030: out of process memory when trying to allocate 169040 bytes (pga heap,kgh stack)
  • ORA-04030: out of process memory when trying to allocate 432 bytes (kxs-heap-c,kprbalo temp memory)

关键词:ORA-04030、(pga heap,kgh stack)、(kxs-heap-c,kprbalo temp memory)。

一、问题分析

1 查看错误代码


通常情况下,该错误是由于 私有内存超出 导致。为了分配更多的私有内存,您可以在操作系统级别更改页面计数或调整数据库中的 realfree 堆页面大小。

2 抓取trace文件关键信息

在trace文件中发现:“Process Map” 显示了65532个映射的内存块。然而,每个进程只有 65536 个内存映射条目,这些错误通常是由于操作系统中的映射条目用完而出现的。

3 查询MOS文档

PLSQL Procedure Causing ORA-04030: (pga heap,control file i/o buffer) And ORA-04030: (koh-kghu sessi,pmuccst: adt/record) or ORA-04030: (koh-kghucall ,pmucalm coll) Errors (Doc ID 1325100.1)

二、解决方案

  • 两种解决方案,任选其一即可。建议修改系统参数。

1 操作系统级别修改页面计数

##检查max_map_count当前值
more /proc/sys/vm/max_map_count
    
##关闭数据库实例
   
##修改max_map_count
sysctl -w vm.max_map_count=200000
    
或者
    
cat <<EOF>>/etc/sysctl.conf
vm.max_map_count=200000
EOF
    
##生效
sysctl -p
    
##重启主机
reboot
    
##启动数据库实例

注意:因为修改系统参数需要重启主机,所以需要数据库停机进行操作,重启主机系统参数生效之后,再启动数据库。

2 修改数据库隐含参数

  • Oracle 11204版本之前:
##设置spfile参数
alter system set "_use_realfree_heap"=TRUE scope=spfile;
alter system set "_realfree_heap_pagesize_hint"=200000 scope=spfile;
    
##重启数据库
  • Oracle 12.1版本之后:
##设置spfile参数
alter system set "_use_realfree_heap"=TRUE scope=spfile;
alter system set "_realfree_heap_pagesize"=200000 scope=spfile;

##重启数据库

注意:由于修改spfile,因此需要重启数据库实例才能生效。

参考官方文章:Doc ID 1325100.1


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

技术交流可以 关注公众号:Lucifer三思而后行

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。