oa考勤管理系统解决方案,考勤系统操作流程
1517
2022-05-30
目前主要从事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 <
注意:因为修改系统参数需要重启主机,所以需要数据库停机进行操作,重启主机系统参数生效之后,再启动数据库。
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
本次分享到此结束啦~
如果觉得文章对你有帮助,
、、关注、评论
,一键四连支持,你的支持就是我创作最大的动力。
Oracle 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。