ORA-00600 [4194] とは
ORA-00600 [4194]は、UNDOレコードの不整合を示すOracle内部エラーです。トランザクションのロールバック中にUNDOブロックの読み取りに失敗した場合に発生します。このエラーはデータベースの起動を妨げる深刻な問題です。
エラーメッセージ例
ORA-00600: internal error code, arguments: [4194], [#], [#], [], [], [], [], []
主な原因
- UNDOセグメントの破損
- トランザクション情報の不整合
- システム障害後のリカバリ失敗
- ハードウェア障害によるブロック破損
従来の対処法
_CORRUPTED_ROLLBACK_SEGMENTS パラメータ
隠しパラメータを使用して破損したロールバックセグメントをスキップする方法がありますが、データ整合性のリスクがあります。
_OFFLINE_ROLLBACK_SEGMENTS パラメータ
特定のロールバックセグメントをオフラインにして起動を試みますが、成功率は限定的です。
DBRECOVERによる解決
DBRECOVERは、UNDOの問題を完全に回避してデータファイルから直接データを抽出できます。以下の利点があります:
- UNDOセグメントを使用しないため、破損の影響を受けない
- データベースを起動する必要がない
- 制御ファイルやREDOログも不要
- コミット済みデータを確実に抽出
復旧手順
- DBRECOVERを起動
- データファイル(.dbf)を指定してロード
- テーブル一覧をスキャン
- 必要なテーブルのデータをエクスポート
- 新しいデータベースにデータをインポート