プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]




[oracle@mlab2 ~]$ oerr ora 81020


8102, 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


ORA-8102エラが現れた原因はテーブルあるいはLOB SEGMENTでキー値が存在しているが、インディクスから見つからないとエラになる。




oer 8102.<code> – obj# <object id>, rdba: <rdba value>(afn <file#>, blk# <block#>)kdk key 8102.2:ncol: <number of columns in the key including the rowid>, len: <key length>key: (<length>):<hexadecimal value>



その中 obj#は影響を受けたobject_idで、 rdbaがデータデータブロックアドレスで、AFNは絶対ファイル番号で、blk#はそのkeyが置くべきインディクスのブロック番号である。



SQL> DELETE dept WHERE deptno=10;DELETE dept WHERE deptno=10*ERROR at line 1:ORA-08102: index key not found, obj# 46115, file 5, block 90 (2) Traceファイルで以下の内容が現れる:oer 8102.2 – obj# 46115, rdba: 0x02c0005a(afn 5, blk# 90)kdk key 8102.2:ncol: 3, len: 16key: (16):06 c5 02 01 01 27 02 04 c3 02 32 33 06 02 c0 00 4a 00 05





SELECT *FROM   dba_objectsWHERE  object_id = 46115;



VALIDATE STRUCTURE CASCADE;コマンドで検証して、テーブルとインディクスが一致していないであればORA-1499エラになる:





SELECT /*+ FULL(t1) */ <indexed column list>FROM <Table name> t1MINUSSELECT /*+ index(t <Index name>) */ <indexed column list>FROM <Table name> t;



例えばテーブルの名前は DEPT, Index Name 为I_DEPT1, インディクスI_DEPT1 はDEPTNO, DNAME.

SELECT /*+ FULL(t1) */ deptno, dnameFROM dept t1MINUSSELECT /*+ index(t I_DEPT1) */ deptno, dnameFROM dept t;





ハードウェアあるいはI/Oサブシステムが書き込みをなくしたので、ブロックロジックエラになる。Lost Ioが起きて、keyに対する修正あるいはOracleのデータファイルに書き込まれていない。







エラが起こったのはLOB Indexの場合、LOBを移動してLOB INDEXを再構造する。


alter table &table_owner.&table_with_lobmove LOB (&&lob_column) store as (tablespace &tablespace_name);


NB Bug Fixed Description
14222244, Adding a column with DEFAULT and NOT NULL constraint disabled causes problems – superseded
13073122, ORA-8102 signaled by q000* processes operating on queues with retention
+ 17761775,,, ORA-600 [kclchkblkdma_3] ORA-600 [3020] or ORA-600 [kcbchg1_16] Join of temp and permanent table in RAC might lead to corruption
17449815, ORA-8102 ORA-1499 after ORA-1/ORA-2291 by MERGE with DML ERROR LOGGING
16844448,,, ORA-600 [3020] after flashback database in a RAC
13708951, ORA-8102 on UPDATE statement with subquery for an indexed column
13146182,,,, ORA-1499 ORA-8102 ORA-600 [kdsgrp1] Bitmap Index / Table mismatch
P 12330911 EXADATA LSI firmware for lost writes
11778458, Wrong Results / ORA-1802 on TO_CHAR with CURSOR_SHARING
10633840,,, ORA-1502 on insert statement on INTERVAL partitioned table. ORA-8102 / ORA-1499 Index inconsistency
10245259,, PARALLEL INSERT with +NOAPPEND hint or if PARALLEL INSERT plan is executed in SERIAL corrupts index and causes wrong results
+ 10209232,,,,,, ORA-1578 / ORA-600 [3020] Corruption. Misplaced Blocks and Lost Write in ASM
+ 9734539, ORA-8102 / ORA-1499 corrupt index after update/merge using QUERY REWRITE
+ 9469117,,, Corrupt index after PDML executed in serial. Wrong results. OERI[kdsgrp1]/ORA-1499 by analyze
+ 9231605,,,, Block corruption with missing row on a compressed table after DELETE
+ 8951812, Corrupt index by rebuild online. Possible OERI [kddummy_blkchk] by SMON
8847637, ORA-7445[kxibPut] caused by merge stmt and online index rebuild
8720802,,, Add check for row piece pointing to itself (db_block_checking,dbv,rman,analyze)
+ 8546356,,,, ORA-8102/ORA-1499/OERI[kdsgrp1] Composite Partitioned Index corruption after rebuild ONLINE in RAC
7710827, Index rebuild or Merge partition causes wrong results in concurrent reads instead of ORA-8103
7705591,,,, Corruption with self-referenced row in MSSM tablespace. Wrong Results / OERI[6749] / ORA-8102
+ 17752121,, ORA-600 [kclchkblkdma_3] ORA-600 [3020] RAC diagnostic/fix to avoid a block being modified in Shared Mode and prevent corruption
16922996 ORA-8102 ORA-1499 Internal rollback in Parallel DML may cause index inconsistency
8588540, Corruption / ORA-8102 in RAC with loopback DB links between instances
8514561 ORA-8102 updating a table with function based index and TYPE columns and a TRIGGER
+ 7329252,,, ORA-8102/ORA-1499/OERI[kdsgrp1] Index corruption after rebuild index ONLINE
6057203,, Corruption with zero length column (ZLC) / OERI [kcbchg1_6] from Parallel update
5621677, Logical corruption with PARALLEL update
5181547, Index corruption after insert-only merge /*+ append */ or PDML into table
5179313, INSERT /*append parallel*/ can corrupt an index
4883635, MERGE (with DELETE) can produce wrong results or Logical corruption in chained rows
* 4570793 Index corruption from array inserts (ORA-8102/ORA-1499)
4246090,, IOT corruption from buffered INSERT with function based index (ORA-8102)
3573604, A transported bitmap index can give various OERI errors / ORA-8102
3365045,, Functional index on DATE column can depend on NLS_DATE_FORMAT (ORA-8102 on DML)
3352413,, An ORA-8102 error can occur on ATEMPIND$ during a user UPDATE with CONSTRAINTS
3069818,, Corruption possible modifying a migrated or chained row
2485931, ORA-8102 from IOT DML with concurrent MOVE ONLINE
2293492,, Fatal error during COMMIT / ROLLBACK may cause permanent corruption (eg: ORA-8102)
2511906 ORA-8102 possible on update of IOT
2271722, ORA-8102 possible on update of IOT with OVERFLOW
2165461 Direct load to table with DESCENDING index may cause subsequent ORA-8102 errors
2131767 Parallel create of FUNCTIONAL INDEX on PARTITION table can product corrupt index (ORA-8102)
2456255 ORA-8102 on DELETE from PARTITIONED table with index
1667103, Update of an IOT with CONCATENATION using a SECONDARY index signals ORA-8102
1388843, UNIQUE/PK constraints ENFORCED with NON-UNIQUE COMPRESSED indexes allow duplicates / ORA-8102
536567,,, Corrupt index from PARALLEL Index build/rebuild of CONCAT index if FFS used and leading columns are NULL.







Leave a Reply

Your email address will not be published. Required fields are marked *