问题描述
以前也碰到过这个错误,不过由于无法直接连接数据库,没有办法深入分析。这次虽然同样没有办法连接数据库,但是获取了更详细的信息,基本确定导致问题的原因。
错误信息如下:
Wed May 09 10:41:32 2012 Errors IN file /oracle/admin/orcl/udump/orcl_ora_423466.trc: ORA-00600: internal error code, arguments: [qertbFetchByRowID], [], [], [], [], [], [], []复制
专家解答
其实从错误信息不难分析,导致问题的原因和索引有关,错误信息明确指出了问题发生在通过ROWID信息读取表时,而通过ROWID读取是索引扫描的标志。
一般来说这种问题是索引和表上数据的逻辑损坏造成的,如果问题出现在索引上,那么最简单的办法莫过于删除重建索引,或者使用ONLINE方式重建索引。
将索引删除后,问题果然不再出现,但是尝试重建索引时,引发了另一个ORA-600错误:
SQL> analyze TABLE tab_a validate STRUCTURE cascade online; analyze TABLE tab_a validate STRUCTURE cascade online ORA-01499: TABLE/INDEX CROSS reference failure - see trace file SQL> ALTER INDEX ind_a rebuild online parallel 4; ALTER INDEX ind_a rebuild online parallel 4 ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []复制
告警日志中信息为:
Errors IN file /oracle/admin/orcl/udump/orcl_ora_618990.trc: ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []复制
详细TRACE中信息为:
*** 2012-05-09 13:52:41.518 ksedmp: internal OR fatal error ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [] CURRENT SQL statement FOR this SESSION: ALTER INDEX ind_a rebuild online parallel 4 ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst+001c bl ksedst1 00000FFFF ? 000000000 ? ksedmp+0290 bl ksedst 104A557A8 ? ksfdmp+0018 bl 03F4CD24 kgerinv+00dc bl _ptrgl kgeasnmierr+004c bl kgerinv 70000002F81807C ? 0000000B8 ? 1F400000000 ? 110546478 ? 110546068 ? kdsgrp+0460 bl 01FB9490 kdsgnp+0444 bl kdsgrp 70000002F8184ED ? 000000000 ? 110546070 ? kdstf0011101km+0c24 bl 03F4A5C0 kdsttgr+5244 bl kdstf0011101km 110546068 ? 000010266 ? 70000022DCBB510 ? FFFFFFFFFFF54F8 ? 0FFFFFFFF ? 000001FE8 ? 000000000 ? 000000000 ? qertbFetch+09b8 bl kdsttgr 110546068 ? 4842208000000001 ? 804000007BFB0 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? C4FB00000000 ? qergiFetch+02a4 bl 03F49A98 qertqoFetch+01f0 bl 01FB9488 qertqiFetch+0158 bl 01FB9488 qersoFetch+0110 bl 03F49A98 qerliFetch+0188 bl 03F49A98 qertqoFetch+01f0 bl 01FB9488 qerpxFetch+0210 bl 01FB9488 kdicrws+16e8 bl 01FB9488 kdicdrv+09b8 bl kdicrws 70000022DFE4DC0 ? 70000022DFE5500 ? 70000022DFE5500 ? opiexe+28c4 bl kdicdrv B00000009 ? 100000001 ? 11043C340 ? opiosq0+19f0 bl opiexe FFFFFFFFFFF8E70 ? 2824424042420820 ? FFFFFFFFFFF8F30 ? kpooprx+0168 bl opiosq0 33C0D81A0 ? 1101957F8 ? 1100098E0 ? A4000110199810 ? kpoal8+0400 bl kpooprx FFFFFFFFFFFB784 ? FFFFFFFFFFFB508 ? 3B0000003B ? 100000001 ? 000000000 ? A40000000000A4 ? 000000000 ? 1103A0018 ? opiodr+0ae0 bl _ptrgl ttcpip+1020 bl _ptrgl opitsk+1124 bl ttcpip 1100CAB28 ? 000000000 ? 000000001 ? FFFFFFFFFFFB8B0 ? 000000001 ? 1100DFE78 ? FFFFFFFFFFFB830 ? 11046F998 ? opiino+0990 bl opitsk 0FFFFD7C0 ? 000000000 ? opiodr+0ae0 bl _ptrgl opidrv+0484 bl 01FBA8D8 sou2o+0090 bl opidrv 3C02ABCD9C ? 4A039F928 ? FFFFFFFFFFFF6C0 ? opimai_real+01bc bl 01FB868C main+0098 bl opimai_real 000000000 ? 000000000 ? __start+0090 bl main 000000000 ? 000000000 ? --------------------- Binary Stack Dump ---------------------复制
可以看到,数据的损坏出在表块上,因此重建索引会导致错误。如果问题出现在表块上,那么除了利用DBMS_REPAIR包之类的进行修复外,还可以通过简单的PL/SQL将正常的数据导出。由于数据存在坏块,直接CREATE TABLE AS SELECT采用直接路径方式,会绕过数据的校验,因此错误数据仍然会插入。而EXP和EXPDP在导出的时候同样会报错,因此只有通过PL/SQL单条记录读取,如果正常就插入到目标表,如果出现读取异常,那么通过异常判断来过滤该错误。
ORA-600[kdsgrp1]错误:http://yangtingkun.itpub.net/post/468/524144
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
570次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
530次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
432次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
429次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
427次阅读
2025-04-01 15:56:03
Oracle SQL 执行计划分析与优化指南
Digital Observer
424次阅读
2025-04-01 11:08:44
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
423次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
401次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
389次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
363次阅读
2025-04-08 23:57:08
TA的专栏
Java中间件
收录0篇内容
热门文章
一次Connection reset by peer的问题排查
2021-12-07 33949浏览
Java8-Stream: no instance(s) of type variable(s) R exist so that void conforms to R
2021-02-19 32355浏览
nginx: [emerg] "user" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1
2022-02-15 24268浏览
ORA-00904: "POLTYP": invalid identifier
2019-06-19 12930浏览
PageHelper排坑,处理排序失败: net.sf.jsqlparser.JSQLParserException
2022-05-19 12771浏览