- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ora-08012错误解决
ora-8102问题的处理
Posted on 八月 09, 2008 by 白鳝
出现Ora-8102的原因一般是由于索引中的KEY和TABLE里的相关字段值不同导致数据不一致引起。一般来说,出现ORA-8102,是由于数据库逻辑或者物理故障引起的,损坏的可能是表数据,也可能是索引数据。
如果损坏的是索引数据,那么只需要将索引重建就可以使表和索引数据一致,从而解决问题。如果损坏的是表数据,那么要看损坏的范围,如果只是损坏了某一行,那么纠正某一行的数据就可以了,如果损坏的面积较大,那么处理起来就比较复杂了。Oracle有一份文档1034886.6就是解释如何处理ORA-8102的,文章涉及的数据库版本比较老(7版),不过基本思路大致是没有问题的。针对较大面积的损坏,在1034886.6里面也没有给出很好的处理方案,绝对是十分麻烦的事情,不过有一种变通的方案,导出数据,然后重建对象是最佳的选择。
不过有一种情况十分头痛,如果损坏的表不是简单的用户表,而是一个字典表,如果更加不幸,碰到了核心BOOTSTRAP$对象,那么就十分头痛了。前几天客户那边出现一个十分奇怪的现象,就是使用IMP导入数据的时候碰到ORA-8102错误,错误是在创建表的时候发生的:
create table tcon2( a integer not null)
*
ERROR 位于第 1 行:
ORA-00604: 递归 SQL 层 1 出现错误
ORA-08102: 未找到索引关键字,obj# 49,dba 4277961 (2)
尝试随便创建一张表:
create table test( a integer);
是能够成功的。查找OBJ#=49的对象,发现是I_CON2索引出现问题。该索引是CON$上的一个索引,CON$是维护约束关系的。通过TRACE可以看到:
*** SESSION ID:(12.7) 2008-08-08 16:56:58.984
oer 8102.2 - obj# 49, rdba: 0x004146c9
kdk key 8102.2:
ncol: 1, len: 4
key: (4): 03 c2 3d 02
表中的值是C2 3D 02 (6001),通过TRACE查看索引的值:
BH (0x653EFC74) file#: 1 rdba: 0x004146c9 (1/83657) class 1 ba: 0col 0; len 2; (2): c2 3d
row#135[632] flag: -----, lock: 0, data:(6): 00 40 01 52 00 0c
col 0; len 3; (3): c2 3d 05
索引中的值是c2 3d 05(6004),就是由于这个原因导致。一般情况下如果表没有损坏,那么通过REBUILD索引可以解决问题。但是49号对象是核心BOOTSTRAP$对象,是不能REBUILD的:
SQL alter index sys.i_con2 rebuild;alter index sys.i_con2 rebuild*ERROR 位于第 1 行:ORA-00701: 无法改变热启动数据库所需的对象
这种情况,为了解决不一致,只能使用BBED修改索引或表中的值,使之能够一致。
BBEDset file 1
BBEDset block 83657
BBEDmodify /x 0x05 735
BBEDsum apply
然后重启数据库,发现故障已经解决。
具体处理过程:
阳春白雪 09:37:45
老赵让我看大庆的库,你把错误信息和alert等跟踪文件传给我吧
连友 09:38:47
delete from t_hz where nd=2010 and yf=02 and ri=00
and dw=1012105;
王连友 09:38:56
ORA-08102: 未找到索引关键字
王连友 09:39:27
执行过
drop index ind_part_t_hz;
王连友 09:41:06
dw=1012105 塑料厂,不能汇总
可以正常备份
阳春白雪 09:42:32
出错的那个厂子2月份不能汇总是吗
zzj 09:48:37
2月份的数据索引坏了
阳春白雪 10:02:32
你不是能访问吗,想办法吧,我至少得要bdump下面的alert文件
阳春白雪 10:06:58
你连接到大庆的库,执行上面出错的语句,然后把执行计划传我看下,分区索引已经摘除了对吧
连 10:07:52
接收文件成功,保存于C:\Documents and Settings\Administrator\My Documents\My QQ Files\bdump.r
文档评论(0)