My Oracle Support Banner

ORA-1499 表/索引の行数ミスマッチ (Doc ID 2488432.1)

Last updated on DECEMBER 25, 2018

適用範囲:

Oracle Database Cloud Exadata Service - バージョン N/A 以降
Oracle Database Backup Service - バージョン N/A 以降
Oracle Database Cloud Service - バージョン N/A 以降
Oracle Database - Enterprise Edition - バージョン 8.1.7.0 から 12.2.0.1 [リリース 8.1.7 から 12.2]
Oracle Database Cloud Schema Service - バージョン N/A 以降
この文書の内容はすべてのプラットフォームに適用されます。
本文書利用上のご注意
  本文書は英語の文書 <Document 563070.1> (最終メジャー更新日: 2018年10月26日) の日本語翻訳版です。
  英語の文書のメジャー更新に応じて本文書を随時更新いたします。

現象

"validate structure cascade" と共に実行する Analyze table が ORA-1499 で失敗し、トレースファイルには "Table/Index row count mismatch" というメッセージが含まれます。例:

SQL> analyze table test validate structure cascade;
analyze table test validate structure cascade
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file 

 

関連のトレースファイルには、以下が含まれます:

Table/Index row count mismatch
table 6559 : index 10000, 0
Index root = tsn: 6 rdba: 0x01400091

つまり、表スキャンは 6559 行を返し、索引スキャンは 10000 行を返しました。

"Index root" は、索引のセグメントヘッダー情報です。

rdba: 0x01400091 は、索引セグメントヘッダーの相対データブロックアドレスです。Rfile#=5 (相対ファイル番号) Block#=145 であるのは 10進数の 20971665 です。

prompt Enter tsn:
accept tsn

prompt Enter rdba (in hex, no '0x' prefix):
accept hex_rdba

set verify off

select file#,
dbms_utility.data_block_address_block(
to_number('&hex_rdba','XXXXXXXXX')) block#
from sys.v$datafile
where ts# = &tsn
and rfile# = dbms_utility.data_block_address_file(
to_number('&hex_rdba','XXXXXXXXX'));

 

FILE#      BLOCK#  
---------- ----------  
7          145 


dba_segments から次のクエリを実行すると、関連付けられている索引が識別されます (header_fileには絶対 file# が必要です)。

クエリ 1 :

SQL> select owner, segment_name, segment_type 
2    from  dba_segments 
3    where header_file = 7 
4      and header_block = 145; 

OWNER    SEGMENT_NAME    SEGMENT_TYPE 
-------- --------------- ------------------ 
SCOTT    I_TEST          INDEX 
 

この論理的な不整合は、10g 以降の ORA-600 [kdsgrp1] またはそれより前のバージョンでは ORA-600 [12700] として現れることがあります。

変更点

 

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
現象
変更点
原因
解決策
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.