一ORACLE 10.2.0.5.0 标准版的数据库的告警日志出现ORA-00600错误,具体错误信息如下所示

Errors in file /u01/app/oracle/admin/SCM2/bdump/scm2_s003_20333.trc:

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

Wed Oct 21 09:22:02 CST 2015

Errors in file /u01/app/oracle/admin/SCM2/bdump/scm2_s003_20333.trc:

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

Wed Oct 21 09:22:05 CST 2015

Errors in file /u01/app/oracle/admin/SCM2/bdump/scm2_s006_21620.trc:

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

Wed Oct 21 09:22:10 CST 2015

在trc文件里面能看到有不少下面错误信息以及对应的SQL语句(都是同一SQL语句触发此类ORA-00600错误)

WARNING:Could not increase the asynch I/O limit to 736 for SQL direct I/O. It is set to 128

WARNING:Could not increase the asynch I/O limit to 736 for SQL direct I/O. It is set to 128

如果将该SQL语句在SQL Development里面执行,告警日志里面就会出现上述ORA-00600错误。同事查了下资料,怀疑是Bug 9949948 : PROCESS SPIN UNDER KSFDRWAT0 IF AIO-MAX-NR TOO LOW 导致, ORACLE Metalink里面描述如下:

Bug 9949948  Linux: Process spin under ksfdrwat0 if OS Async IO not configured high enough

This note gives a brief overview of bug 9949948. 
The content was last updated on: 28-OCT-2011
 Click here for details of each of the sections below.

Affects:

Product (Component) Oracle Server (Rdbms)
Range of versions believed to be affected Versions >= 10.2.0.4 but BELOW 11.1
Versions confirmed as being affected
Platforms affected
  • Linux X86-64bit
  • Linux 32bit

It is believed to be a regression in default behaviour thus:
   Regression introduced in 10.2.0.5

Fixed:

This issue is fixed in

Symptoms:

Related To:

Description

This problem is introduced in 10.2.0.5 

It only affects platforms where Oracle has to reserve async IO slots,
such as Linux platforms. If the OS async IO layer is underconfigured and an Oracle process
cannot get sufficient AIO slots then rather than reverting to
using non AIO call the process may go into an infinite spin
under ksfdrwat0. Rediscovery notes:
The spin will be preceded by messages in the trace
file of the form:
WARNING:io_submit failed due to kernel limitations MAXAIO
for process=0 pending aio=0
WARNING:asynch I/O kernel limits is set at AIO-MAX-NR=65536 AIO-NR=65518
WARNING:1 Oracle process running out of OS kernelI/O resources aiolimit=0 Notice specifically that the value for aiolimit is reported as "0"
for this bug. The process then spins in ksfdrwat0 typically with a stack showing
skgfqio ()
ksfdgo ()
ksfdwtio ()
ksfdwat1 ()
ksfdrwat0 () <<< Spin point
ksfdblock ()
kcflwi ()
kcflci ()
kcblci ()
kcblcio ()
kcblgt ()
kcbldrget () It will show repeated waits for "i/o slave wait", which can be
misleading as that is normally considered an idle wait event. Workaround
Raise the OS AIO limits such that the number of concurrent slot
requirements never exceeds the OS limit.
ie: Increase AIO-MAX-NR
OR
Disable async IO (Set DISK_ASYNCH_IO=FALSE) See Note:1313555.1 for additional notes on this issue.
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.

References

Bug:9949948 (This link will only work for PUBLISHED bugs)
Note:245840.1 Information on the sections in this article

这篇博客WARNING:Could not increase the asynch I/O limit to xxx for SQL direct I/O已有较详细描述。  但是我查了一下资料,觉得更有可能是Bug 9800302 : 10.2.0.5 GETTING ORA-00600 [KCBLASM_1] 。关于Bug 9800302的Meta Link上文档描述如下所示:

PPLIES TO:

Oracle Database - Enterprise Edition - Version 10.2.0.5 to 10.2.0.5 [Release 10.2]
Information in this document applies to any platform.
***Checked for relevance on 10-Jul-2015***

SYMPTOMS

Alert log reports:

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

The call stack in the generated trace file looks similar to:

... kcblasm1 kcblasm kxhfFndFreeSlot kxhfNewBuffer qerhjGetNewBuffer ksxb1bqb kxhrPack ...

CHANGES

This problem is hit only in 10.2.0.5, up to PSU 10.2.0.5.4 in which problem is fixed.
Problem is affecting 10.2.0.5 to 10.2.0.5.3.

CAUSE

This is is a known and common problem hit in 10.2.0.5, investigated and corrected in unpublished Bug 7612454.

The problem was introduced in 10.2.0.5, by the fix of Bug:7523755.
This has been corrected in PSU 10.2.0.5.4 and 11.2.

Please refer to:
Note 7612454.8 - Bug 7612454 - More "direct path read" operations / OERI:kcblasm_1

SOLUTION

The quickest way to solve the problem is to apply PSU 10.2.0.5.4, Patch 12419392 or later.

All alternative solutions for this problem are listed below:

  • Upgrade the database to 11.2.

    - OR -
  • Apply 10.2.0.5.4 Patch Set Update (Patch 12419392) or later PSUs where bug is fixed. 
    The available PSUs are mentioned in "10.2.0.5 Patch Set Updates - List of Fixes in each PSU" (Document 1337394.1)

    - OR -
  • Apply interim Patch 7612454 on top of 10.2.0.5 (10.2.0.5.0-10.2.0.5.3):

    • For UNIX / Linux platforms apply Patch 7612454 available for download on MOS.
    • For Windows platforms apply Patch 3 or higher. 
      Please check Document 342443.1 for latest patches available for Windows on top of 10.2.0.5.

但是毕竟ORACLE 10.2.0.5版本存在这两个bug,所以导致出现这个问题的可能性都存在,于是我采用排除法,先将Oracle参数DISK_ASYNC_IO=FALSE(Bug 9949948可以通过禁用异步IO解决), 然后执行导致异常出现的SQL语句,结果告警日志里面依然出现了ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []。看来可以排除是Bug 9949948引起这个错误,但是让我觉得纳闷的是这个SQL语句来自一个报表,而且运行很久了,以前也没有出现这个问题,最近不知道什么触发了这个Bug。于是我先验证一下

在SQL语句执行前执行 ALTER SESSION SET “_hash_join_enabled”=FALSE,执行该语句不会出现ORA-00600错误。另外,将该SQL语句优化改写也能避免出现此类ORA-00600错误。当然打上补丁p7612454解决此类问题才是最行之有效的解决方法。经过测试验证,发现应用补丁p7612454后,该SQL语句不会再报ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []错误了。

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []的更多相关文章

  1. ORA-00600: internal error code, arguments: [kcblasm_1], [103], [] bug

    巡检发现存在alert 日志存在ORA-600 1.0 查询alter 对应的Trace日志 /oracle/admin/fgsquery/udump/fgsquery_ora_21777.trc O ...

  2. ORA-00600: internal error code, arguments: [kcblin_3], [103], [253952], [8192], [32769], [312], [640], [], [], [], [], []解决方法

    昨晚,一SQL执行的时候报了ORA-00600: internal error code, arguments: [kcblin_3], [103], [253952], [8192], [32769 ...

  3. ORA-00600: internal error code, arguments: [4194]

    使用PlateSpin复制出来的一数据库服务器(Oracle 10g)在启动数据库实例时遇到"ORA-00600: internal error code, arguments: [4194 ...

  4. ORA-00600: internal error code, arguments: [17281], [1001], [0x1FF863EE8], [], [], [], [], []

    我们生产服务器中的一个数据库发出监控告警日志的邮件,内容如下所示,在31号09:11分出现了大名鼎鼎的ORA-00600错误. Dear All: The Instance xxx' alert lo ...

  5. ORA-00600: internal error code, arguments: [2662]

    转自 http://www.eygle.com/archives/2005/12/oracle_diagnostics_howto_deal_2662_error.html 在ORA-00600 22 ...

  6. ORA-00600: internal error code, arguments: [13030], [20]一例解决

    两年没有接触oracle了,中午,一环境update from的时候出现ORA-00600: internal error code, arguments: [13030], [20]异常,经查,官网 ...

  7. ORA-00600: internal error code, arguments: [2662], [0], [1106971], [0], [1107731], [12583040]

    今天是2014-06-06,在进行数据库恢复的时候出现了一个久违的ora-600 [2662]错误.特整理例如以下: 问题描写叙述: system及数据文件误删,採用恢复数据文件的方式将数据库恢复到開 ...

  8. ORA-00600: internal error code, arguments: [kdBlkCheckError]

    ORA-00600: internal error code, arguments: [kdBlkCheckError] Table of Contents 1. 现象 2. 分析 3. 故障处理 1 ...

  9. 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []

    07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...

随机推荐

  1. Win10 IoT C#开发 6 - 4x4矩阵键盘扫描

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...

  2. spring笔记1 spring MVC的基础知识1

    1,spring MVC的流程 优秀的展现层框架-Spring MVC,它最出彩的地方是注解驱动和支持REST风格的url.   流程编号 完成的主要任务 补充 1 用户访问web页面,发送一个htt ...

  3. IOS----友盟推送详解

    这两天好好的研究了下推送这功能,关于它我将分成两部分来讲,一.IOS手机端,二.Servlet服务端,今天先讲下IOS端 一.感受 下面讲下我对推送这个功能在IOS下的感受,这个算是我做了服务端的功能 ...

  4. 容器--HashMap

    一.前言 看了下上一篇博客已经是半个月前,将近20天前了,很惭愧没有坚持下来,这期间主要是受奥运会和王宝强事件的影响,另外加上HashMap中关于rehash的实现比较不好理解,所以就一拖再拖.如果能 ...

  5. 关于线上的bug什么时候修复的思考

    这里系统专门指的是那种用户量大的系统,比如有几百万或者上千万的注册会员.因为小系统因为用户量少,不存在这种思考,考虑有时候是多余的.另外还有内部系统,给自己公司内部人员使用的,即便是出现了问题,也不会 ...

  6. TestNG 三 测试方法

    一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用testng.xml或 ...

  7. 相识不易,要懂珍惜----------Spring Mvc

    一.Spring Mvc简介 Spring Mvc也叫Spring Web Mvc,属于表现层额框架.Spring Mvc是Spring框架的一部分,是在Spring3.0后发布的. 二.Spring ...

  8. 清除浮动类的css

    .clearfix:after{ content:; visibility:hidden; display:block; clear:both;} .clearfix{ zoom:;}

  9. 8种效果实例-jQuery anoSlide 焦点图轮播

    anoslide是一款可调节效果至任意宽度大小,支持图文混合内容显示的图片轮播插件. 在线实例 单个 多个 动画延迟 自动播放 显示分页 显示标题 延迟加载 自适应高度 使用方法 <div cl ...

  10. Heatmap.js v2.0 – 最强大的 Web 动态热图

    Heatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示.Heatmap.js 这个 JavaScript 库可以实现 ...