当前位置: 首页 > news >正文

一次ORA-00600问题的排查和分析(上)(r5笔记第64天)

昨天处理了一起ora-00600的错误,其中也经历了各种曲折,真是雾里看花,看透了之后发现很多问题都是有原因的。
起初是开发说有一个job运行的时候报错了,数据库版本是11.2.0.2.0
0?wx_fmt=gif
等到问题提交到我这,客户已经检查了一些信息了。但是还是没有结论。
对于这个问题,我还是照例开始检查数据库日志。
在那个时间段内里出现了ora-00600的错误。
Wed Jun 10 13:47:17 2015
Errors in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_p070_1200.trc (incident=2124332):
ORA-00600: internal error code, arguments: [srsnext_3], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/incident/incdir_2124332/PRODB_p070_1200_i2124332.trc
Wed Jun 10 13:48:04 2015
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

在这个ora-00600错误前后又碰到了几个奇怪的ora错误,我把错误日志按照时间先后来排列一下。

Thread 1 advanced to log sequence 82829 (LGWR switch)
Current log# 1 seq# 82829 mem# 0: /dbccbPR1/oracle/PRODB/redolog_A1/redo/redo01A.log
Current log# 1 seq# 82829 mem# 1: /dbccbPR1/oracle/PRODB/redolog_B1/redo/redo01B.log
Archived Log entry 82894 added for thread 1 sequence 82828 ID 0xb8c6d509 dest 1:
Wed Jun 10 07:10:17 2015
ORA-00060: Deadlock detected. More info in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_18508.trc.
Wed Jun 10 07:10:21 2015
ORA-00060: Deadlock detected. More info in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_18593.trc.
Wed Jun 10 07:12:14 2015
ORA-00060: Deadlock detected. More info in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_16505.trc.
Wed Jun 10 07:26:54 2015
ORA-00060: Deadlock detected. More info in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_18558.trc.
Wed Jun 10 07:52:47 2015
Thread 1 advanced to log sequence 82830 (LGWR switch)
Current log# 2 seq# 82830 mem# 0: /dbccbPR1/oracle/PRODB/redolog_A2/redo/redo02A.log
Current log# 2 seq# 82830 mem# 1: /dbccbPR1/oracle/PRODB/redolog_B2/redo/redo02B.log

Wed Jun 10 12:09:40 2015
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x210] [PC:0x193F4DF, kxfpqrclb()+71] [flags: 0x0, count: 1]
Errors in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_p135_15651.trc (incident=2116204):
ORA-07445: exception encountered: core dump [kxfpqrclb()+71] [SIGSEGV] [ADDR:0x210] [PC:0x193F4DF] [Address not mapped to object] []
ORA-10382: parallel query server interrupt (reset)
Incident details in: /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/incident/incdir_2116204/PRODB_p135_15651_i2116204.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Wed Jun 10 12:09:41 2015
Dumping diagnostic data in directory=[cdmp_20150610120941], requested by (instance=1, osid=15651 (P135)), summary=[incident=2116204].
Wed Jun 10 12:09:44 2015
Sweep [inc][2116204]: completed
Sweep [inc2][2116204]: completed
Wed Jun 10 12:09:59 2015

Wed Jun 10 13:46:27 2015
Archived Log entry 82967 added for thread 1 sequence 82901 ID 0xb8c6d509 dest 1:
Wed Jun 10 13:47:17 2015
Errors in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_p070_1200.trc (incident=2124332):
ORA-00600: internal error code, arguments: [srsnext_3], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/incident/incdir_2124332/PRODB_p070_1200_i2124332.trc
Wed Jun 10 13:48:04 2015

Archived Log entry 82993 added for thread 1 sequence 82927 ID 0xb8c6d509 dest 1:
Wed Jun 10 14:38:53 2015
Errors in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_15548.trc (incident=2110436):
ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu sessi,pmucalm coll)
Incident details in: /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/incident/incdir_2110436/PRODB_ora_15548_i2110436.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

为了更加清晰,我把对应的ORA错误和数据库负载联系在一起。
对于deadlock的错误,很可能是应用死锁造成的,简单查看了下trace日志,做了基本确认,就交给开发去分析这部分了。
从后续的错误情况来看,似乎和后续的问题没有直接关系。我们暂时先放下这个deaklock的错误。所以在图中没有标注出来。
其它三个都用红色标注出来。可以看出在负载开始增加的几个时间点里,依次发生了几个ORA错误。
0?wx_fmt=png
第一个错误。
ORA-07445: exception encountered: core dump [kxfpqrclb()+71] [SIGSEGV] [ADDR:0x210] [PC:0x193F4DF] [Address not mapped to object] []
ORA-10382: parallel query server interrupt (reset)
可以从日志信息看出,似乎是和并行是相关的。
对于这个错误。在metalink 中查到一篇有些相似的文章。
ORA-07445:[kxfpqrclb()+72] [SIGSEGV] And ORA-10382 (Doc ID 1987833.1)
看了solution让我有些失望,需要升级到12.2版本。

SOLUTION

Unpublished Bug 16682786 : HIT ORA-7445 [KXFPQRCLB+1691] WHEN RUN SHARED CURSOR TEST

The base bug is fixed in 12.2 release.

Check patch downling link for availability of patch, if patch does not exists then create an SR with oracle support with output of "opatch lsinventory -details" to get a patch..

暂时也不明朗,继续跳过看下一个错误。
第二个错误
ORA-00600: internal error code, arguments: [srsnext_3], [], [], [], [], [], [], [], [], [], [], []
对于这个问题,metalink中确实有一个相关的文章 Query Fails with ORA-00600: Internal Error Code, Arguments: [srsnext_3] (Doc ID 1589589.1)
但是对于这个问题,提供的solution让我也有些无奈。因为段时间内确实没有升级的计划。

CAUSE

Bug 11852469 : TS11.2.0.3V3 - TRC - SRSNEXT.

Rediscovery information:

If the srsnext_3 internal error is raised and the query involves statistical functions or other aggregates that are treated as distinct aggregates then you may be encountering this problem.

0?wx_fmt=gifSOLUTION

Apply patch 11852469 if it exists for your version/platform

or

Apply patchset 11.2.0.3 where the fix is included


第三个错误。
Archived Log entry 82993 added for thread 1 sequence 82927 ID 0xb8c6d509 dest 1:
Wed Jun 10 14:38:53 2015
Errors in file /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/trace/PRODB_ora_15548.trc (incident=2110436):
ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu sessi,pmucalm coll)
Incident details in: /opt/app/oracle/dbccbspr1/diag/rdbms/PRODB/PRODB/incident/incdir_2110436/PRODB_ora_15548_i2110436.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

对于这个错误,metalink中有一篇相关的文章。诊断并解决 ORA-4030 错误 (Doc ID 1548826.1)
从metalink的描述来看,该错误意味着 Oracle Server 进程无法从操作系统分配更多内存。该内存由 PGA(Program Global Area)组成,其内容取决于服务器配置。对于专用的服务器进程,内存包含堆栈以及用于保存用户会话数据、游标信息和排序区的 UGA(User Global Area)。在多线程配置中(共享服务器),UGA 被分配在 SGA(System Global Area)中,所以在这种配置下 UGA 不是造成 ORA-4030 错误的原因。
因此,ORA-4030 表示进程需要更多内存(堆栈 UGA 或 PGA)来执行其任务。
看起来是缓存配置出问题了。
先卖个关子,其实事实并非如此,而且ora-00600的错误,如果不是反复出现,严重影响,是不会直接去考虑打补丁,可能通过一些其它的方式去做。后续会结合一些分析方法来看。




相关文章:

  • 一次ORA-00600问题的排查和分析(下)(r5笔记第65天)
  • 毕业设计的小故事(r5笔记第67天)
  • 重启数据库的一场闹剧(r5笔记第68天)
  • 关于aio的设置的讨论(r5笔记第69天)
  • 一条sql语句的改进探索(r5笔记第70天)
  • 海量数据迁移之传输表空间(一) (r5笔记第71天)
  • 数据刷新中的并行改进(r5笔记第72天)
  • 一条sql语句的建议调优分析(r5笔记第73天)
  • 泰国之旅随感(r1笔记第70天)
  • 曼谷周末游(r5笔记第74天)
  • 使用flashback query巧妙抽取指定数据(r5笔记第75天)
  • 数据刷新中的并行改进(二) (r5笔记第76天)
  • 养鱼生活的一段终结(r5笔记第77天)
  • oracle监控工具ignite使用图解(r5笔记第78天)
  • 数据刷新中的并行改进(三) (r5笔记第79天)
  • 【RocksDB】TransactionDB源码分析
  • 【技术性】Search知识
  • Java反射-动态类加载和重新加载
  • jquery cookie
  • JS变量作用域
  • k8s 面向应用开发者的基础命令
  • mysql 数据库四种事务隔离级别
  • V4L2视频输入框架概述
  • yii2权限控制rbac之rule详细讲解
  • Yii源码解读-服务定位器(Service Locator)
  • 从重复到重用
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 记一次用 NodeJs 实现模拟登录的思路
  • 力扣(LeetCode)965
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 你不可错过的前端面试题(一)
  • 使用 Docker 部署 Spring Boot项目
  • 算法---两个栈实现一个队列
  • 详解移动APP与web APP的区别
  • 小程序 setData 学问多
  • Java总结 - String - 这篇请使劲喷我
  • 阿里云API、SDK和CLI应用实践方案
  • #define 用法
  • $L^p$ 调和函数恒为零
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)Google的Objective-C编码规范
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转载)虚函数剖析
  • **python多态
  • .gitignore文件---让git自动忽略指定文件
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Reactor简单使用教程
  • .NET 常见的偏门问题
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET企业级应用架构设计系列之技术选型