暂无图片
分享
鱼儿
2019-07-08
Oracle单实例内存满导致数据库实例中断

您好,想请教一下:


Oracle11.2.0.4,单实例

OS:  rhel6.4

数据库服务器于4号晚上22:01内存耗尽杀掉了DBW0进程,之后pmon进程检测到后就kill掉了实例(Oracle日志)。

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

OS日志如下:

Jul  4 22:01:49 s-oradb kernel: Out of memory: Kill process 3093 (oracle) score 185 or sacrifice child

Jul  4 22:01:49 s-oradb kernel: Killed process 3093, UID 502, (oracle) total-vm:36954300kB, anon-rss:2492kB, file-rss:13766820kB


Oracle日志如下:

Thu Jul 04 22:00:00 2019

Setting Resource Manager plan SCHEDULER[0x32DC]:DEFAULT_MAINTENANCE_PLAN via scheduler window

Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter

Thu Jul 04 22:00:00 2019

Starting background process VKRM

Thu Jul 04 22:00:00 2019

VKRM started with pid=168, OS id=100641

Thu Jul 04 22:00:02 2019

Begin automatic SQL Tuning Advisor run for special tuning task  "SYS_AUTO_SQL_TUNING_TASK"

Thu Jul 04 22:01:53 2019

System state dump requested by (instance=1, osid=3075 (PMON)), summary=[abnormal instance termination].

Thu Jul 04 22:01:53 2019

PMON (ospid: 3075): terminating the instance due to error 471

Thu Jul 04 22:01:53 2019

opiodr aborting process unknown ospid (82470) as a result of ORA-1092

Thu Jul 04 22:01:53 2019

opiodr aborting process unknown ospid (75843) as a result of ORA-1092

System State dumped to trace file /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_diag_3085_20190704220153.trc

Thu Jul 04 22:01:53 2019

ORA-1092 : opitsk aborting process

Thu Jul 04 22:01:53 2019

ORA-1092 : opitsk aborting process

Instance terminated by PMON, pid = 3075

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

服务器内存64GB,分配给SGA35G,PGA设为4G。

开启了hugepage,大概35.01G。

设置了vm.min_free_kbytes=1G


之后检查:sga,pga在故障时间前后均无明显变化,进程数、会话数也均无明显波动。

监控:因内存监控的算法包含了cached(free -m中的cached),所以算法是不准确的,这个值一直以来都是98%-99%。

CPU、IO在故障时间点均无明显波动。


疑问:

1、既然sga、pga、进程会话均无异常,那是否可以排除oracle当时因为业务突增的情况而耗尽内存?


2、若不是oracle本身原因,那是否可以定位为是操作系统的cached无法释放导致?但是设置了vm.min_free_kbytes=1G,按理来说会有1G的空闲空间,不至于内存耗尽。因监控没有采集到内存的真实变化,故无法判断是否是cached一直在增长未释放。


3、请问是否有bug触发这种情况:还有free memory,但是依旧触发了oom killer。


麻烦有时间帮忙看一下,不胜感激。







收藏
分享
2条回答
默认
最新
weizhao.zhang (anbob)

更多是需要问题时间的具体数据, 如OSW, nmon     , 最好把内存控制在一个较安全的范围,不只是SGA, PGA ,进程, OS kernel维护前台和后台进程同样需要内存, 更甚是a user process PGA使用较大或内存异出


Troubleshooting Out-Of-Memory(OOM) killer db crash when memory exhausted


暂无图片 评论
暂无图片 有用 0
鱼儿
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏