ORA-00600: 内部エラー・コード, 引数: [4xxx] エラ解析

フルデータベースバックアップからドロップされたテーブルを手動バックアップおよびリカバリ手順を使用して回復する

このノートは、復旧のために必要なすべてのログを持つ有効なフルバックアップ用であるため、正確にはこのノートに従うことはできません。変更する必要があるのは、上記の要約ステップです。
リカバリを行った後、強制オープンを試みることができます(リストアしたデータベースでオープンリセットログを行ったため、sys、sysaux、およびアンドゥについて再度リストア/リカバリを行う必要があります):

強制オープンを行う前に、データベースのフルコールドOSバックアップを取ることをお勧めします。

データベースを強制オープンするには:

AUMを使用している場合は、辞書にリストされているすべてのロールバックセグメントを特定する必要があります(システムdbfs):
Unixでは、unix stringsコマンドを使用してロールバックセグメントを抽出できます:

$ strings system01.dbf | grep _SYSSMU | cut -d $ -f 1 | sort -u > listSMU

system01.dbfはSYSTEMテーブルスペースのデータファイルの名前です。複数のsystem dbfがある場合は、それぞれのファイルについてこれを行い、都度異なるlistSMUnファイルに書き込む必要があります。

データベースをマウントし、pfileを作成します(まだ持っていない場合)
SQL> create pfile=’init.ora’ from spfile;

pfileを編集 – 追加:

_allow_resetlogs_corruption=true
undo_management=MANUAL
_corrupted_rollback_segments=

ここでのは、上記のように抽出されたロールバックセグメント名のリストで、各名前に’$’が付けられています。例:

_corrupted_rollback_segments=(_SYSSMU1$, _SYSSMU2$………_SYSSMU10$)

修正されたpfileを使用してインスタンスを再マウントし、次の操作を行います:
SQL> recover database using backup controlfile until cancel;
SQL> cancel
SQL> alter database open resetlogs;

これがうまくいけば、データベースの内容をエクスポートできます。データベースは完全に再構築され、データを再インポートする必要があります。
これが失敗した場合は、失敗の内容(強制オープン中に発生する一般的なエラーにはORA-1555、ORA-600[2662]、ORA-600[4194]、Ora-600[4000]があります)と、これらの隠しパラメーターを設定した後のアラートログ抜粋を見る必要があります。エクスポート後は隠しパラメーターを削除してください。Oracleサポートからのアドバイスなしに使用してはいけません。