最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ORA-08102错误解决

来源:动视网 责编:小采 时间:2020-11-09 12:46:31
文档

ORA-08102错误解决

ORA-08102错误解决:ORA-08102这种错误说明索引或表出现了数据不一致的,索引上记录的键值和表里的数据不一致,引起访问失败,一般重建下索引就可以解 今天两次遇到ORA-08102的错误,在删除表的数据时 在执行如下语句时: delete from tb_ware w where w.is
推荐度:
导读ORA-08102错误解决:ORA-08102这种错误说明索引或表出现了数据不一致的,索引上记录的键值和表里的数据不一致,引起访问失败,一般重建下索引就可以解 今天两次遇到ORA-08102的错误,在删除表的数据时 在执行如下语句时: delete from tb_ware w where w.is


ORA-08102这种错误说明索引或表出现了数据不一致的,索引上记录的键值和表里的数据不一致,引起访问失败,一般重建下索引就可以解

今天两次遇到ORA-08102的错误,在删除表的数据时

在执行如下语句时:

delete from tb_ware w where w.issue like '%04%';

遇到下面的错;

ORA-08102:index key not found,obj#57848,file 6, block 6324(2)

*******************************************************************************
/ *Cause: Internal error: possible inconsistency in index

// *Action: Send trace file to your customer support representative, along
// with information on reproducing the error

*******************************************************************************

ORA-08102这种错误说明索引或表出现了数据不一致的,索引上记录的键值和表里的数据不一致,引起访问失败,一般重建下索引就可以解决


解决方法一:

SELECT owner, object_name, object_type
FROM Dba_Objects
WHERE object_id IN (57848);

可以查出object_name的名字,发现是表TB_WARE的索引,然后重建索引

alter index PK_TB_WARE rebuild online; (记得要用rebuild online ,因为他会重新读表来创建索引,而rebuild可能会读取原先的索引段而不会去读表)

注意,这个时候千万不要人为终止,如果你真的那样的话你会遇到ora-08104

如果还不能解决,就删除重新创建

select index_name,column_name from all_ind_columns
where index_name='PK_TB_WARE';


drop index PK_TB_WARE;

create index PK_TB_WARE on tb_ware(id);

解决方法二:

analyze table t validate structure cascade

检查表里的行数据的完全性,并检查表或者索引的结构,并把分析过的结果写入INDEX_STATS 数据字典中

这个方法我没有尝试,我尝试再让问题重现,尝试好几次也没有在出现

---------------------------------

现在回到我的问题上,我在rebuild online一个索引后,,它又提示下一个索引有问题,我索性就把这个表所有的索引都rebuild online

查出这个表的索引


select * from user_indexes t where t.table_name= upper('tb_ware')

组装成下面的语句执行:

alter index PK_TB_WARE rebuild online;
alter index AK_TB_WARE rebuild online;
alter index IDX_TB_WARE_PRINTSTATE rebuild online;
alter index IDX_WARE_END_TIME rebuild online;
alter index IDX_WARE_LOTTERY_ID rebuild online;
alter index IDX_WARE_LOTTERY_STATE rebuild online;
alter index IDX_WARE_TEAM_NAME rebuild online;


再次使用这个表,或到alert.log里就没有ORA-08102的错误了

---end----

Oracle 单实例 从32位 迁移到 位 方法

在CentOS 6.4下安装Oracle 11gR2(x)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

文档

ORA-08102错误解决

ORA-08102错误解决:ORA-08102这种错误说明索引或表出现了数据不一致的,索引上记录的键值和表里的数据不一致,引起访问失败,一般重建下索引就可以解 今天两次遇到ORA-08102的错误,在删除表的数据时 在执行如下语句时: delete from tb_ware w where w.is
推荐度:
标签: 失败 处理 错误
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top