Email: service@parnassusdata.com 7 x 24 online support!
Oracle [マスターノート] Corruption(破損)
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com[概要]
この文書は、My Oracle Support で提供している Corruption(破損) に関する情
報のうち、参照頻度が高い情報へのインデックス及びリファレンスを提供するこ
とを目的としたマスターノートです。
本マスターノートでは、Corruption(破損)に関する情報を項目毎に分類すること
で、用途に応じて必要となる情報へのアクセス・参照を容易にしています。
* 本文書は Document 1635747.1 をベースとした文書です。
[対象リリース]
Oracle Database 11g Release 2 (11.2.0)
Oracle Database 11g Release 1 (11.1.0)
Oracle Database 10g Release 2 (10.2.0)
[対象プラットフォーム]
すべてのプラットフォーム
[詳細]
本文書は以下の項目から構成されています。
1)ブロック破損
2)ディクショナリ破損
3)UNDO破損
4)REDO破損
5)制御ファイル破損
6)行、列破損
7)データ抽出
8)PACKAGE 情報と使用例
9)ツール
10)エラー各種
11)My Oracle Support の効率的な使用方法
各項目の詳細は以下を参照して下さい。
1)ブロック破損
1-1) Generic Note
Note 28814.1 Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Document 1746539.1(KROWN:135804) オブジェクト破損時の対応:その1(破損ブロックの確認)
Document 1746576.1(KROWN:135925) オブジェクト破損時の対応:その2(破損ブロックの復旧)
Document 1746577.1(KROWN:135926) オブジェクト破損時の対応:その3(原因調査のアプローチ)
1-2) 破損とは
Note 840978.1 Physical and Logical block corruptions
1-3) 破損を特定する方法
Document 1701336.1(KROWN:5237) ORA-1578発生時にファイル番号・ブロック番号でオブジェクトを特定する方法
Document 1737554.1(KROWN:123008) RMANを使用して論理ブロックと物理ブロックの破損を確認する方法について
Document 1745489.1(KROWN:133540) [Oracle 11g] RMAN の VALIDATE コマンド
Document 1745988.1(KROWN:134368) [11g新機能] V$DATABASE_BLOCK_CORRUPTION について
Note 472231.1 How to identify all the Corrupted Objects in the Database reported by RMAN
Note 819533.1 How to identify the corrupt Object reported by ORA-1578 / RMAN / DBVERIFY
Note 836658.1 Identify the corruption extension using RMAN/DBV/ANALYZE etc
1-4) 破損の検知、回避
Note 428570.1 Best Practices for Avoiding and Detecting Corruption
1-5) オブジェクト破損の対処:
表破損:
Note 28814.1 Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Document 1746539.1(KROWN:135804) オブジェクト破損時の対応:その1(破損ブロックの確認)
Document 1746576.1(KROWN:135925) オブジェクト破損時の対応:その2(破損ブロックの復旧)
Document 1746577.1(KROWN:135926) オブジェクト破損時の対応:その3(原因調査のアプローチ)
索引破損:
Document 1721853.1(KROWN:63896) dbms_metadataパッケージの概要と使用例
Document 1721554.1(KROWN:63106) 既存の表・索引・表領域のDDL文を作成する方法 (DBMS_METADATA.GET_DDL)
Document 1721658.1(KROWN:63411) 既存の表・表領域等を作成するDDL文を一括して作成する方法
Note 28814.1 Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Note 438143.1 Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 Q How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
Document 1746539.1(KROWN:135804) オブジェクト破損時の対応:その1(破損ブロックの確認)
Document 1746576.1(KROWN:135925) オブジェクト破損時の対応:その2(破損ブロックの復旧)
Document 1746577.1(KROWN:135926) オブジェクト破損時の対応:その3(原因調査のアプローチ)
1-6) LOB:
Note 452341.1 ORA-01555 And Other Errors while Exporting Table With LOBs, How To Detect Lob Corruption.
Note 293515.1 Ora-1578 / Ora-26040 in a LOB segment - Script to solve
1-7) LONG
Note 876493.1 : How to rebuild a table with a block corruption in a LONG (limited note)
2)ディクショナリ破損
** Oracle Support までお問い合わせください **
ほとんどの場合ディクショナリは再作成ができないため、Oracle 側で分析し、
個々の破損状況に基づいた対処方法を検討する必要があります。
分析に役立つ情報:
Note 136697.1 "hcheck.sql" script to check for known problems in Oracle8i, Oracle9i, Oracle10g and Oracle 11g
3)UNDO障害
** Oracle Support までお問い合わせください **
この種の破損は Oracle 側で分析し、対処方法を検討する必要があります。
役立つ情報:
Document 1752923.1(KROWN:148319) ORA-600[4194] エラーの意味について
Document 1746713.1(KROWN:136322) 自動 UNDO 管理を使用している UNDO 表領域の変更、再作成方法
Document 1720813.1(KROWN:60820) UNDO表領域のリカバリ方法
Note 281429.1 Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
Note 39283.1 ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"
Note 431652.1 How to Change the Existing Undo Tablespace to a New Undo Tablespace
4)REDO 障害
** Oracle Support までお問い合わせください **
役立つ情報:
Note 1031381.6 How to Dump Redo Log File Information.
Document 1724097.1(KROWN:71593) オンラインREDOログファイルのリカバリ--多重化した一部の障害の 場合 (for UNIX)
5)制御ファイル障害
** Oracle Support までお問い合わせください **
役立つ情報:
Note 1072762.6 ORA-00227, ORA-00202: BRING UP INSTANCE AFTER MACHINE CRASH
Document 1723972.1(KROWN:71169) 制御ファイルのリカバリ方法--多重化した一部の障害の場合(for UNIX)
Document 1724073.1(KROWN:71501) 制御ファイルのリカバリ方法--全ての制御ファイルの障害の場合 (for UNIX)
6)行/列 破損
役立つ情報:
Note 976591.1 HowTo validate a date/timestamp column
Note 869305.1 How To identify a 'corrupt' row when error is raised but no row information provided
Note 136620.1 Sanity Check of Oracle NUMBERS, How to Find and Patch
7)データ抽出
役立つ情報:
Document 1731203.1(KROWN:99901) dbms_rowidパッケージを使用して、破損しているブロックのデータを読み飛ばす方法(R8.0以降)
Document 1717045.1(KROWN:48684) DBMS_REPAIRパッケージの使用例
Document 1706324.1(KROWN:21385) ORA-1578 ブロック破損時の表のデータ取得について (event 10231)
Document 1708147.1(KROWN:25666) チェインした行を含むブロックに対して dbms_repair.skip_corrupt_blocks を実行してもブロックがスキップされない
Note 422547.1 Extract rows from a CORRUPT table creating ROWID from DBA_EXTENTS
Note 33405.1 Extracting Data from a Corrupt Table using SKIP_CORRUPT_BLOCKS or Event 10231
Note 61685.1 Extracting Data from a Corrupt Table using ROWID Range Scans in Oracle8/8i
8)PACKAGE 情報と使用例
8-1)DBMS_REPAIR
役立つ情報:
Note 556733.1 DBMS_REPAIR script
Note 68013.1 DBMS_REPAIR example
Document 1717045.1(KROWN:48684) DBMS_REPAIRパッケージの使用例
8-2)DBMS_METADATA
役立つ情報:
Document 1721853.1(KROWN:63896) dbms_metadataパッケージの概要と使用例
Document 1721554.1(KROWN:63106) 既存の表・索引・表領域のDDL文を作成する方法 (DBMS_METADATA.GET_DDL)
Document 1721658.1(KROWN:63411) 既存の表・表領域等を作成するDDL文を一括して作成する方法
Note 438143.1 Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 Q How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
Note 332077.1 Why Does DBMS_METADATA.GET_DDL Not Show All Lines?
Note 188838.1 Using DBMS_METADATA To Get The DDL For Objects
9)ツール
9-1)DBV
役立つ情報:
Document 1708650.1(KROWN:26754) DB_VERIFY(dbv)の使い方について
Document 1715827.1(KROWN:45367) DBVERIFYの詳細な使用方法、及び注意点
Document 1708361.1(KROWN:26156) DBVERIFYによる検査結果の見方について
Document 1711618.1(KROWN:34830) DBVERIFY 9i新機能: セグメントの検査について
Note 35512.1 DBVERIFY - Database file Verification Utility (7.3.2 - 10.2)
Note 269028.1 DBV Reports Corruption Even After Drop/Recreate Object
Note 336133.1 How to Format Corrupted Block Not Part of Any Segment
9-2)EXPORT
役立つ情報:
Document 1723903.1(KROWN:70964) 初めてのエクスポート/インポート・ユーティリティ
Document 1737396.1(KROWN:122837) ダイレクト・エクスポート および Data Pump Export にて ORA-1578 が発生しない
Note 214369.1 Using The Export Utility To Check For Database Corruption
9-3)RMAN
役立つ情報:
Document 1737554.1(KROWN:123008) RMANを使用して論理ブロックと物理ブロックの破損を確認する方法について
Note 283053.1 How To Use RMAN To Check For Logical & Physical Database Corruption
9-4)TTS
役立つ情報:
Document 1709003.1(KROWN:27536) トランスポータブル表領域移行手順
Note 733824.1 HowTo Recreate a database using TTS
10)エラー各種
主な破損系のエラーは次のようになります
ORA-1410, ORA-1578, ORA-8103, ORA-8102, ORA-1499, ORA-1498, ORA-26040,
ORA-600 [12700], ORA-600 [3020], ORA-600 [4194], ORA-600 [4193], ORA-600 [4137],
ORA-600 [6101], ORA-600 [2130], ORA-600 [4512], ORA-600 [2662], ORA-600 [4097],
ORA-600 [4000], ORA-600 [6006], ORA-600 [4552], ORA-600 [6856], ORA-600 [13011],
ORA-600 [13013], ORA-600 [13030], ORA-600 [25012], ORA-600 [25026],
ORA-600 [25027], ORA-600 [kcbz_check_objd_typ] / [kcbz_check_objd_typ_3],
ORA-600 [kddummy_blkchk], ORA-600 [ktadrprc-1], ORA-600 [ktsircinfo_num1],
ORA-600 [qertbFetchByRowID], ORA-600 [ktbdchk1-bad dscn]
10-1)ORA-1410
このエラーは ROWID を使用し表にアクセスした際のその ROWID が該当の表に
存在しない場合に発生します。
役立つ情報:
Document 1754514.1(KROWN:151486) ORA-1410 の主な発生原因とその対処方法について
Note 806195.1 Understanding The ORA-1410
10-2)ORA-1578
このエラーはブロックを読み込む際にそのブロックに異常を検知すると発生し
ます。
役立つ情報:
Document 1723295.1(KROWN:68810) ORA-1578の主な発生原因とその対処方法について
10-3)ORA-8103
このエラーはDDL 文により対象オブジェクトの DATA_OBJECT_IDが変更された
際に、対象オブジェクトをスキャンする SELECT 文などが実行されることで
発生する可能性があります。
役立つ情報:
Document 1743015.1(KROWN:128770) ORA-8103 の主な発生原因について
10-4)ORA-8102
このエラーは表に格納されている行データと、それに対応する索引キーの状態
の不整合を検知すると発生します。
役立つ情報:
Document 1723270.1(KROWN:68739) ORA-8102の主な発生原因とその対処方法について
10-5)ORA-1499
このエラーは ANALYZE TABLE xxx VALIDATE STRUCTURE CASCADE 実行により、
索引と表に不整合を検知した場合に発生します。
役立つ情報:
Document 1723270.1(KROWN:68739) ORA-8102の主な発生原因とその対処方法について
Note 563070.1 ORA-1499. Table/Index row count mismatch
Note 18899.1 OERR: ORA 1499 table/Index Cross Reference Failure - see trace file
10-6) ORA-1498
このエラーは ANALYZE VALIDATE STRUCTURE 実行により、ブロック破損を検知
した場合に発生します。
役立つ情報:
Document 1708241.1(KROWN:25881) ORA-600 [12700]が発生しました
Note 18898.1 OERR: ORA 1498 "block check failure - see trace file"
10-7) ORA-26040
このエラーはブロックにアクセスした際にそのブロックが NOLOGGING/
UNRECOVERABLE オプションによって REDO を生成せずにロードされたブロッ
クであった場合に発生します。
役立つ情報:
Document 1713369.1(KROWN:39235) NOARCHIVELOGモードでの時間ベースのリカバリでORA-1578が発生
Document 1724056.1(KROWN:71431) NOLOGGINGオペレーションの実行要件
Document 1727560.1(KROWN:86827) 「CACHE READS」または「CACHE READS LOGGING」を指定して作成されたLOBセグメントの変更がREDOログに書かれない
Document 1740103.1(KROWN:125712) [DataGuard] Data Guard 環境での NOLOGGING の使用について
Document 1717797.1(KROWN:51215) ローカル管理の一時表領域を作成時に既存のtempfileをreuseして作成後ブロック障害が発生する
Document 1745891.1(KROWN:134161) [DataGuard] ASM を使用した環境でのプライマリからフィジカル・スタンバイへのデータファイルのコピー方法
Document 1715026.1(KROWN:43434) ALTER INDEX REBUILD PARTITION のデフォルトが NOLOGGING になっている
Note 71344.1 OERR ORA-26040 Data block was loaded using the NOLOGGING option
Note 794505.1 ORA-1578 / ORA-26040 Corrupt blocks by NOLOGGING - Error explanation and solution
Note 293515.1 ORA-1578 ORA-26040 in a LOB segment - Script to solve the errors
Note 1071869.1 ORA-1578 ORA-26040 in 11g for DIRECT PATH with NOARCHIVELOG even if LOGGING is enabled
Note 430230.1 ORA-1578 ORA-26040 On Awr Table
Note 272316.1 Errors ORA-01578, ORA-26040 On Standby Database
Note 416476.1 Workflow Tables ORA-01578 ORACLE data block corrupted ORA-26040 Data block was loaded using the NOLOGGING option
Note 763009.1 ORA-1578, ORA-26040 Data block was loaded using the NOLOGGING option
10-8) ORA-600 [12700]
このエラーは一般的に、索引では存在しているはずの行が表レベルでは存在し
ていないことを検知した場合に発生する内部エラーです。また、読み取り一貫
性の問題でも発生することがあります。
役立つ情報:
Document 1723202.1(KROWN:68439) ORA-600 [12700] が発生した場合の調査方法
Note 155933.1 Resolving an ORA-600 [12700] error in Oracle 8 and above.
Note 28229.1 ORA-600 [12700] "Index entry Points to Missing ROWID"
10-9) ORA-600 [3020]
このエラーはリカバリ時に REDO の情報とその REDO を適用しようとしたブロ
ックの情報に不整合を検知した場合に発生する内部エラーです。
役立つ情報:
Document 1727610.1(KROWN:86962) リカバリ時にORA-600[3020]が発生
Note 30866.1 ORA-600 [3020] "Stuck Recovery"
Note 269352.1 Information Required for Root Cause Analysis of ORA-600 [3020] (stuck recovery)
10-10) ORA-600 [4194]
このエラーは REDO レコードと UNDO レコードの不整合を検知した場合に発生
する内部エラーです。
役立つ情報:
Document 1752923.1(KROWN:148319) ORA-600[4194] エラーの意味について
Note 39283.1 ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"
Note 281429.1 Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
10-11) ORA-600 [4193]
このエラーは REDO レコードと UNDO レコードのシーケンス番号の不整合を検
知した場合に発生する内部エラーです。
役立つ情報:
Note 39282.1 ORA-600 [4193] "seq# mismatch while adding undo record"
Note 281429.1 Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
Note 452662.1 Ora-600 [4193] When Opening Or Shutting Down A Database
Note 763566.1 ORA-600 [4193] When Trying To Open The Database
10-12) ORA-600 [4137]
このエラーは UNDO レコードのトランザクションID の不整合を検知した場合
に発生する内部エラーです。
役立つ情報:
Note 43914.1 ORA-600 [4137] "XID in Undo and Redo Does Not Match"
10-13) ORA-600 [6101]
このエラーは UNDO の適用を行う処理の過程で index に対して行データを格
納しようとした際に、行データを格納するために必要となる領域が不足してい
た場合に発生する内部エラーです。
役立つ情報:
Note 40640.1 ORA-600 [6101] "insert into leaf block (undo)"
10-14) ORA-600 [2130]
このエラーは制御ファイルから情報を取得したり、制御ファイルに更新しよう
とした際に、不正なエントリ番号を検知した場合に発生する内部エラーです。
役立つ情報:
Note 28225.1 ORA-600 [2130] "Attempt to access non-existant controlfile entry"
10-15) ORA-600 [4512]
このエラーはデータブロックに記録されているトランザクションロックのステ
ータスをチェックした際、ロックの数が予期した数より多い場合に発生する内
部エラーです。ブロック破損が原因となって発生する可能性があります。
役立つ情報:
Note 73455.1 : ORA-600 [4512] "Lock count mismatch"
10-16) ORA-600 [2662]
このエラーはブロックのキャッシュ・レイヤの SCN(最後にブロックが更新さ
れた時の SCN)がカレント SCNより大きいと発生する内部エラーです。
役立つ情報:
Note 28929.1 ORA-600 [2662] "Block SCN is ahead of Current SCN"
Note 429773.1 Summary of Bugs Containing ORA-00600 [2662]
Note 1021243.6 ORA 600 [2662] DURING STARTUP
10-17) ORA-600 [4097]
このエラーはトランザクションがコミット済みかどうかの確認のためにロール
バックセグメントヘッダーにアクセスした際に、トランザクション ID の不正
を検知した場合に発生するエラーです。
ロールバックセグメント破損が原因となり発生する可能性があります。
役立つ情報:
Note 44893.1 ORA-600 [4097] "Corruption"
10-18) ORA-600 [4000]
このエラーは UNDO セグメント番号を獲得するのに失敗した場合に発生する内
部エラーです。
ロールバックセグメント破損が原因となり発生する可能性があります。
役立つ情報:
Note 47456.1 ORA-600 [4000] "trying to get dba of undo segment header block from usn"
10-19) ORA-600 [6006]
このエラーは、INDEX LEAF ブロックに対する UNDO の適用時に、UNDO RECORD
に存在する INDEX KEY 値が、UNDO対象の INDEX ブロックに存在しなかった場
合に発生する内部エラーです。
通常、ディスクへの書き込みロストやディスク上の破損が原因となり発生しま
す。
役立つ情報:
Note 138899.1 ORA-600 [6006]
10-20) ORA-600 [4552]
このエラーはデータブロック内の行を unlock しようとした際に、データブロ
ック内のヘッダにて、データブロックのタイプを示す値が不正な値であること
を検知した場合に発生するエラーです。
通常、ブロック破損が原因で発生します。
役立つ情報:
Note 138846.1 ORA-600 [4555]
10-21) ORA-600 [6856]
このエラーは、ブロックのある slot 開放しようとした場合に、既に slot が
開放されていることを検知した場合に発生する内部エラーです。
役立つ情報:
Note 41719.1 ORA-600 [6856] "Corrupt Block When Freeing a Row Slot"
10-22) ORA-600 [13011]
このエラーは DELETE 実行時に対象表に設定されている索引や制約の情報に不
整合がある場合に発生する内部エラーです。
役立つ情報:
Document 1733545.1(KROWN:107832) DELETE 文の実行で ORA-600[13011] が発生
Note 28184.1 ORA-600 [13011] "Problem occurred when trying to delete a row"
10-23) ORA-600 [13013]
このエラーは UPDATE しようとしているデータブロックのアドレスと、Index
が指し示すデータブロックのアドレスが異なる場合に発生する内部エラーです。
役立つ情報:
Note 28185.1 ORA-600 [13013] "Unable to get a Stable set of Records"
Note 816784.1 How to resolve ORA-00600 [13013], [5001]
10-24) ORA-600 [13030]
Note 351760.1 ORA-600 [13030]
10-25) ORA-600 [25012]
このエラーは表領域番号と相対ファイル番号から絶対ファイル番号を算出した
際に、算出した値に該当するファイルが存在しないことを検知した場合に発生
する内部エラーです。
役立つ情報:
Note 100073.1 ORA-600 [25012] "Relative to Absolute File Number Conversion Error"
Note 429471.1 Summary Of Bugs Containing ORA-00600 [25012]
10-26) ORA-600 [25026]
このエラーは表領域の情報をチェックした際に不正な表領域の ID やブロック
番号を検知した場合に発生する内部エラーです。
役立つ情報:
Note 335029.1 ORA-600 [25026]
10-27) ORA-600 [25027]
このエラーは、表領域番号と RDBA (相対ファイル番号、ブロック番号)から、
絶対ファイル番号を算出できなかった場合に発生する内部エラーです。
役立つ情報:
Document 1752788.1(KROWN:148002) ORA-600[25027] エラーの意味について
Note 284433.1 ORA-600 [25027]
10-28) ORA-600 [kcbz_check_objd_typ] / [kcbz_check_objd_typ_3]
このエラーは、バッファキャッシュ上のブロックのオブジェクト情報とディス
クから読み込んだブロックのオブジェクト情報が一致しない場合に発生する内
部エラーです。ほとんどの場合、ブロック破損が原因となります。
役立つ情報:
Note 406787.1 ORA-600 [kcbz_check_objd_typ_3]
Note 824154.1 ORA-600 [kcbz_check_objd_typ]
Note 466049.1 Summary of Bugs Containing ORA - 00600[kcbz_check_objd_typ_3]
10-29) ORA-600 [kddummy_blkchk]
このエラーは、REDO の適用後に行なわれる、ブロックの CHECK が失敗した場
合に発生する内部エラーです。
ほとんどの場合、REDO またはブロック破損が原因となります。
役立つ情報:
Note 300581.1 ORA-600 [kddummy_blkchk]
Note 422036.1 Summary of Bugs Containing ORA-00600 [KDDUMMY_BLKCHK] Error
10-30) ORA-600 [ktadrprc-1]
このエラーは、表領域番号、ファイル番号、ブロック番号から セグメントの
情報を取得しようとした際に、セグメントの情報が見つからなかった場合に
発生する内部エラーです。
役立つ情報:
Note 309315.1 ORA-600 [ktadrprc-1]
10-31) ORA-600 [ktsircinfo_num1]
このエラーは、セグメント情報を正しく取得できなかった場合に発生する内部
エラーです。
役立つ情報:
Note 139182.1 ORA-600 [ktsircinfo_num1]
10-32) ORA-600 [qertbFetchByRowID]
このエラーは索引と表で不整合が検知した場合に発生する内部エラーです。
役立つ情報:
Note 300637.1 ORA-600 [qertbfetchbyrowid]
10-33) ORA-600 [ktbdchk1-bad dscn]
このエラーはインスタンスの Current の SCN よりも、データブロック上の
SCN のほうが大きいという不整合な状態を検出した場合に発生する内部エラー
です。
役立つ情報:
Note 139165.1 ORA-600 [ktbdchk1: bad dscn]
11)My Oracle Support の効率的な使用方法
Document 1741916.1(KROWN:127614) グローバル・カスタマ・サポートの有効活用
Document 1732811.1(KROWN:105315) システム製品に関するSRの優先対応(エスカレーション)が必要な場合に提供いただく情報について
Document 1729642.1(KROWN:94183) 個別パッチリクエストの際に必要な情報について
NOTE:747242.5 My Oracle Support Configuration Management FAQ
Document 868955.1 My Oracle Support Health Checks Catalog
[参照情報]
Document 1635747.1 マスターノート: Oracle データベースの破損問題の対処
Document 1635229.1 Oracle7/8/8i/9i/10g/11g の Oracle ブロック破損の対処