咨询微信: dbservice1234 7 x 24 在线支持!

    你在这里

    • You are here:
    • 首页 > 博客 > PDSERVICE的博客 > 如何解决表SMON_SCN_TIME上报告的ORA-08102 ORA-08102: 未找到索引关键字, 对象号 , 文件 , 块 ()

如何解决表SMON_SCN_TIME上报告的ORA-08102 ORA-08102: 未找到索引关键字, 对象号 , 文件 , 块 ()

如何解决表SMON_SCN_TIME上报告的ORA-08102 ORA-08102: 未找到索引关键字, 对象号 , 文件 , 块 ()

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

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

 

ORA-08102: 未找到索引关键字, 对象号 , 文件 , 块  ()

 

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

 

适用于:

Oracle Database – Enterprise Edition – 版本9.2.0.1 到11.2.0.1 [Release 9.2 to 11.2]
本文信息适用于任何平台。
*** 22-Feb-2012检查相关性***
目标

本文的目标是帮助解决表SMON_SCN_TIME上的ORA-8102。 Smon进程在警报日志文件中报告该错误。

在文件/opt/bdump/emrep_smon_1241286.trc中的错误:
ORA-00604: error occurred at recursive SQL level 1
ORA-08102: index key not found, obj#

Ora-8102 indicates a corruption in the Index involved.

分析表SMON_SCN_TIME validate structure ;没问题

联机分析表SMON_SCN_TIME validate structure cascade;失败并生成Ora-1499

解决方案

首先确认表没有任何损坏,通过运行:

SQL> analyze table SMON_SCN_TIME validate structure;

表被分析了。

它应该干净地显示出被分析表的信息。

 

找出表中涉及的索引

SQL> Select index_name,index_type,owner from dba_indexes where table_name=’SMON_SCN_TIME’ ;

INDEX_NAME INDEX_TYPE OWNER
—————————— ————————— ——————————
SMON_SCN_TIME_TIM_IDX NORMAL SYS
SMON_SCN_TIME_SCN_IDX NORMAL SYS

获得DDL来重建这两个索引

SQL> Set long 10000000
SQL> Select dbms_metadata.get_ddl(‘INDEX’,’SMON_SCN_TIME_TIM_IDX’,’SYS’) FROM DUAL ;

DBMS_METADATA.GET_DDL(‘INDEX’,’SMON_SCN_TIME_TIM_IDX’,’SYS’)
——————————————————————————–

CREATE UNIQUE INDEX “SYS”.”SMON_SCN_TIME_TIM_IDX” ON “SYS”.”SMON_SCN_TIME” (“T
IME_MP”)
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE “SYSTEM”

SQL> Select dbms_metadata.get_ddl(‘INDEX’,’SMON_SCN_TIME_SCN_IDX’,’SYS’) FROM DUAL ;

DBMS_METADATA.GET_DDL(‘INDEX’,’SMON_SCN_TIME_SCN_IDX’,’SYS’)
——————————————————————————–

CREATE UNIQUE INDEX “SYS”.”SMON_SCN_TIME_SCN_IDX” ON “SYS”.”SMON_SCN_TIME” (“S
CN”)
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE “SYSTEM”

一旦你有了索引所需的DDL 。Drop索引

Drop index sys.SMON_SCN_TIME_TIM_IDX ;
Drop index sys.SMON_SCN_TIME_SCN_IDX ;

重新运行

SQL>Analyze table SMON_SCN_TIME validate structure cascade online ;

如果干净显示If it comes out clean

使用以上步骤中dbms_metadata.get_ddl生成的脚本重建两个被drop的索引

重新运行

SQL>Analyze table SMON_SCN_TIME validate structure cascade online ;

这应该会干净显示

参考

NOTE:1088018.1 – Master Note for Handling Oracle Database Corruption Issues
NOTE:563070.1 – ORA-1499. Table/Index row count mismatch