ORA-00600
Programmer's Comments --------------------- If you wish to add comments regarding a message that should not be seen by the public, use "// *Comment: " as follows: e.g. 32769, 00000, "incompatible SQL*Net version" *Cause: An attempt was made to use an older version of SQL*Net that is incompatible with current version of ORACLE.数字编码Argument 的Internal error 如果不只打印出一位的Argument的话,那么后续几位的Argument 一般都是有其实际意义的,如ORA-00600[2662]的后续Argument 的含义为: ARGUMENTS: Arg [a] Current SCN WRAP Arg [b] Current SCN BASE Arg [c] dependent SCN WRAP Arg [d] dependent SCN BASE Arg [e] Where present this is the DBA where the dependent SCN came from. 这就便于Oracle Support 来诊断和解决这些Internal Error。对于数字类型的Argument ,Metalink上一般会公开其后续Argument的含义,且因为这些问题较为常见,所以一般都已经提供专门的Resolved Solution 或者 Workaround 方法来提供。 总而言之数字编码的ORA-00600 argument 一般我们可以通过 在Metalink 上搜索 ORA-00600 + 第一位 Argument ,或者使用<ORA-600/ORA-7445 Error Look-up Tool [ID 153788.1]>诊断工具页面来找到相关的有用Note。 b. 函数名形式的Argument 。 这类Argument 代表的Internal Error 相对于前一种要出现的频率低一些, Oracle开发部门尚来没有在相关版本中将这些Internal Error 编码。 这样我们就可以看到出现问题的完整Kernel Function Name , 可以使用ORA-600 + 第一位 Argument 在Metalink 上搜索来找到一些相关的Note , 但是函数名形式的Argument 往往不能精确定位到问题 ,因为 不同的错误原因 可能在同一个内核函数中引发不同的异常 , 而这个时候我们只能看到 函数名的Argument 信息。 更精确定位的 方式是找出 在调用这个函数时的 详细stack call , 我们来看一个ORA-600[KCBZ_CHECK_OBJD_TYP_1]的stack call:
ksedst()+40 ksedmp()+168 ksfdmp()+32 kgerinv()+152 kgeasnmierr()+88 kcbassertbd3()+204 kcbz_check_objd_typ kcbzib()+ kcbgtcr()+ ktecgsc()+168 ktecgetsh()+196 ktecgshx()+40 kteinicnt1()+648 ktssdrbm_segment()+ ktssdro_segment()+3 ktssdt_segs()+1128 ktmmon()+3500 ktmSmonMain()+64 ksbrdp()+1276 opirip()+ opidrv()+1088 sou2o()+120 opimai_real()+496 main()+240 $START$()+注意以上stack call中 只有 ktmSmonMain -> kcbassertbd3 这部分是有意义的, 开始部分的main()-> ksbrdp() 是很普通的入口函数 , 而从kgeasnmierr (Kernel generic Error ) 开始的代码是Oracle 报错层使用的函数 , 都是对定位问题没有帮助的。 将这部分有用的stack call 填入Metalink <ORA-600/ORA-7445 Error Look-up Tool [ID 153788.1]> 600问题诊断页面的 stack call 栏 会以较严格的筛选条件找出问题相关的Note: 针对ORA-00600 的解决 一般 Oracle Support 会给出 补丁修复 和 Workaround 绕过该问题的 2 类解决方案 , 当然也还是存在Oracle 研发部门无法在他们的环境中重现你所遇到的ORA-00600的可能性,这意味着部分600错误可能是官方无解的,也可能是Oracle Support 已经掌握某种Workaround 的方法, 但是没有在现有的Note 文档中提交的情况 , 当然这都是少数现象。 如果实在找不到可用的解决方案, 或者您的产品数据库有极高的服务等级要求,那么提交Service Request (SR) 有些老人还是习惯于称其为Tar的服务请求 , 可能是一种终极手段。 但是我不得不说一句 并非所有的问题 都是有解的 , 您使用的TV 电视机的制造商可以解决 所有其在使用环节中遇到的问题吗? 理论上是可以的 , 但是当解决一个问题的成本非常高时 , 制造商可能更情愿给你换一台电视 ,但是您的产品数据库 可以轻易更换吗? 这是一个值得深思的问题 , 也是RDBMS市场的 一条悖论。 来读读 由Maclean Liu 所编写的ORA-00600 Oracle Internal Error 的相关文章:
Oracle内部错误:ORA-00600:[4097]一例 Oracle内部错误:ORA-00600[15801], [1]一例 Oracle内部错误:ORA-00600:[6033]一例 Oracle内部错误:ORA-00600[OSDEP_INTERNAL]一例 Oracle内部错误:ORA-00600[kgskdecrstat1]一例 Oracle内部错误:ORA-00600[kfioTranslateIO03]一例 Oracle内部错误ORA-00600:[pfri.c: pfri8: plio mismatch ]一例 Oracle内部错误:ORA-00600[2608]一例 Oracle内部错误:ORA-00600[13013][5001]故障诊断一例 Oracle内部错误:ORA-00600[17175]一例 Oracle内部错误ORA-00600:[2667]一例 Oracle RAC内部错误:ORA-00600[keltnfy-ldmInit]一例 ORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [729], [10992], [SPACE LEAK] Example 手工模拟Oracle数据块逻辑讹误引发,ORA-00600:[13013] [5001]一例 ORA-00600 [4400][48]错误一例 ORA-00600 [KCBZPB_1], [59033077], [4], [1], [] example ORA-00600:[qctcte1]内部错误一例 ORA-00600: internal error code, arguments: [15160] ORA-00600: internal error code, arguments: [kdsgrp1] example Oracle内部错误:ORA-00600[25012]一例 ora-00600:[17281], [1001]一例 ORA-00600:[kclchkinteg_2]及[kjmsm_epc]内部错误一例 Oracle内部错误:ORA-00600[kccchb_3]一例 ORA-00600: [qksrcBuildRwo]内部错误一例 ORA-00600:[32695], [hash aggregation can't be done]错误一例 ORA-00600[6711]错误一例 ora-00600[kkocxj:pjpCtx]内部错误一例 ORA-00600 [kcbz_check_objd_typ_3]错误一例 ORA-00600:[15570]内部错误一例 ORA-00600 [3756]内部错误一例 ORA-00600 [kddummy_blkchk]错误一例 How to trigger ORA-00600,ORA-7445 by manual ora-600 [17182]错误一例 Database Force open example ora-600[qesmmCValStat4]一例 ORA-600 [kddummy_blkchk] [18038] 一例 Oracle内部错误:ORA-00600[kgskdecrstat1]一例 famous summary stack trace from Oracle Version 8.1.7.4.0 Bug Note Oracle内部错误ORA-600:[1112] 一次Exadata上的ORA-600[kjbmprlst:shadow]故障分析 ORA-600 quick reference guide ORA-00600[kglhdunp2_2]错误一例 ORA-00600:[kclchkinteg_2]及[kjmsm_epc]内部错误一例 ORA-00600: [7005], [192]内部错误一例 ORA-600 internal error[kqrfrpo]一例 ORA-600[4194]错误一例 How to trigger ORA-00600,ORA-7445 by manual ORA-00600[kjpsod1]&ORA-44203错误一例
posted on 2013-03-19 00:48 Oracle和MySQL 阅读(4346) 评论(0) 编辑 收藏 举报