oracle数据库 alert.log里总是出现 ORA-08102 index key not

oracle数据库 alert.log里总是出现 ORA-08102 index key not,第1张

如果你在ORACLE数据库系统的alert.log 中反复看到类似于如下的错误:

ORA-12012 error on auto execute of job 1

ORA-08102 index key not found, obj# 239, file 1, block 1674 (2)

[oracle@vrh8 ~]$ oerr ora 8102

08102, 00000, “index key not found, obj# %s, file %s, block %s (%s)”

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

// *Action: Send trace file to your customer support representative, along

// with information on reproducing the error

则可能你已经遇到了与本例类似的问题,可以通过下面的命令来分析是否是JOB$数据字典基础表与其索引I_JOB_NEXT上的数据不一致引起的:

select owner , object_name , object_type , status from dba_objects

where object_id=239

analyze table job$ valid structure cascade

如果analyze命令报错则说明确实有不一致, 一般这种情况可以rebuild I_JOB_NEXT索引来解决, 顺序是drop index I_JOB_NEXT然后重建。

如果重建索引后在此analyze 仍报错,则说明 数据的不一致主要出现在表块上,对于这种情况可以采取如下的手段。

重建job$表,并将数据再次导入

重建job$上的2个索引

如果自己搞不定可以找ASKMACLEAN专业数据库修复团队成员帮您恢复!

你好,你可以根据条件去添加索引,例如:

一、

所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引。总索引长度为256字节。

mysim和innodb存储引擎的表默认创建索引都是btree索引,目前mysql还不支持函数索引,但支持前缘索引,对字段前N个字符创建索引

二、mysql创建索引语法

Create [unioun|fulltext|spatial] index indexname[using indextype] on tablename( tablenamecol)

index_col_name:

col_name[ (length)][asc |desc]

如果你创建索引时搞错了,需要修改mysql索引我们可以用alert来修改索引,语法与create index创建索引差不多,我们就不说了,可以查看相关手册。

下面我们来看一个关于mysql创建索引实例教程。

mysql>create index cityname on city(city(2))

Query Ok,600 rows affected (0.26 sec)

Records :600 Duplicates:0 Warings 0:

我们现在来以city为条件进行查询,如下面。

->explain select * from city where city ='www.111cn.net' G

id:1

......

possible_keys:cityname

key:cityname

好了,现在我们来看看mysql删除索引等实例

Drop indexname on tablename

实例,我现在要删除刚才创建city索引

>drop index cityname on city

Query ok, .....

不过通常对百万级数据的查询或者其他 *** 作,都改换其他的大型的数据库了,希望能帮到你,望采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6471946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-23
下一篇 2023-03-23

发表评论

登录后才能评论

评论列表(0条)

保存