重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3087|回复: 0
打印 上一主题 下一主题

[Oracle] 解决表SMON_SCN_TIME上报告的ORA-08102

[复制链接]
跳转到指定楼层
楼主
发表于 2020-12-27 15:40:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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]

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

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-7-8 06:37 , Processed in 0.100647 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表