阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-00604和ORA-04031导致数据库实例宕机

386次阅读
没有评论

共计 3306 个字符,预计需要花费 9 分钟才能阅读完成。

问题描述
某用户 Oracle 数据库数据库突然宕机,查看日志发现宕机前大量出现如下错误:

Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:
ORA-00604: Message 604 not found; No message file for product=RDBMS, facility=ORA; arguments: [2]
ORA-04031: Message 4031 not found; No message file for product=RDBMS, facility=ORA; arguments: [32] [shared pool] [select /*+ rule */ bucket_cn...] [sql area] [tmp]
Thu Nov 12 15:43:54 2015
Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:
ORA-00604: Message 604 not found; No message file for product=RDBMS, facility=ORA; arguments: [2]
ORA-04031: Message 4031 not found; No message file for product=RDBMS, facility=ORA; arguments: [32] [shared pool] [select /*+ rule */ bucket_cn...] [sql area] [tmp]
Thu Nov 12 15:43:55 2015
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 12 15:43:56 2015
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 12 15:43:58 2015
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 12 15:43:59 2015
Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:
ORA-00604: Message 604 not found; No message file for product=RDBMS, facility=ORA; arguments: [2]
ORA-04031: Message 4031 not found; No message file for product=RDBMS, facility=ORA; arguments: [32] [shared pool] [select /*+ rule */ bucket_cn...] [sql area] [tmp]
Thu Nov 12 15:44:00 2015
Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:
ORA-00604: Message 604 not found; No message file for product=RDBMS, facility=ORA; arguments: [2]
ORA-04031: Message 4031 not found; No message file for product=RDBMS, facility=ORA; arguments: [32] [shared pool] [select /*+ rule */ bucket_cn...] [sql area] [tmp]
Thu Nov 12 15:44:00 2015
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 12 15:44:01 2015
Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:
ORA-00604: Message 604 not found; No message file for product=RDBMS, facility=ORA; arguments: [2]
ORA-04031: Message 4031 not found; No message file for product=RDBMS, facility=ORA; arguments: [32] [shared pool] [select /*+ rule */ bucket_cn...] [sql area] [tmp]
Thu Nov 12 15:44:02 2015
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 12 15:44:02 2015
Errors in file /u01/oracle/admin/orcl/bdump/orcl2_smon_14347.trc:

这里 ORA-04031 很清楚地表示出来,是在向 shared pool 申请内存时失败。
shared pool 内存申请(分配)失败,通常有如下的几种可能:

 

  • shared pool 过小,比如在 SGA Manual Management 方式下,shared pool 设置过小。比如一套数千连接的大系统,shared pool 只设置了几百 M。这种情况下,要解决问题很解单,增加 shared pool 的大小即可。
  • 应用没有使用绑定变量,硬解析非常多,导致 shared pool 内存碎片严重,分配大块内存时不能获得连续的内存空间。硬解析多的一个变种是虽然使用了绑定变量,但是由于某种原因,Cursor 不能共享,导致 Child Cursor 非常多。实际上,如果 shared pool 较大(比如数 GB 大小),这种问题还是很少出现的,并且出现也通常出现在申请大块内存时。这种情况如果使用 alter system flush shared_pool 可以暂时缓解问题。但是这条命令又通常不适用于 shared pool 较大而且比较繁忙的系统。使用绑定变量
  • Cache 的 cursor 很多,同时 cursor_space_for_time 这一参数设置为 TRUE,可能会使 shared pool 碎片化严重,导致不能分配到大块的连续内存。
  • Oracle 的 BUG 导致内存泄露,比如在一些版本中查询 v$segment_statistics 这样的视图导致内存泄露,使 shared pool 内存耗光。同样的情形还有类似于“obj stat memory”,”gcs resources”,”ges resources”等。通常这类内存为 perm 类型(permanet),这类内存通常是在分配时就确定了固定的用途,不能用于其他用途,因此极容易产生碎片。
  • Oracle 从 9i 开始,根据 shared pool 的大小将 shared pool 分为多个子池(subpool),每个子池有独立的 free list,同时在分配时单独管理(有其独立 的 shared pool latch)。Oracle 的 BUG 或者说是内存分配策略缺陷导致某一类 shared pool 的内存分配只在一个子池 (subpool) 中,即多个子池的使用极不均衡,导致向那个使用得最多的子池申请内存时失败。报错信息中的”sga heap(3,0)”即指明是在第 3 个子池申请内存时失败。本文案例中的 ORA-04031 错误其产生的原因可以归结为 Oracle 对 shared pool 的分配 / 使用策略问题。
  • 操作系统内存不足,这只会出现在 shared pool 的使用还没有达到最大值时才会出现,并且在操作系统都有 swap 的情况下,只有部分操作系统才可能有这种情况,比如在 HP-UX 下,reserved 内存过多导致 swap 满。
  • 其他原因,多数是因为 BUG。

解决方法
根据问题分析,可以尝试 2 种方式解决:1. 分配更大的共享池(根据 awr 报告建议来设置);2. 定期刷新共享池,避免过多的碎片(可能存在解析风险)

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137675.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3306字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7798265
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...