プロのOracle Databaseの復旧サービスを提供 携帯番号: +86 13764045638 メール:service@parnassusdata.com

  I_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5、これら全部もOBJ$テーブルのインディクスで、壊された場合に、厄介になる。OracleがこれらのオブジェクトのDDLに対して厳しい制限をつけているから、そう簡単にリカバリできない。 以下の例のように: *** 2012-01-31 05:59:24.837 Doing block recovery for file 25 block 2256706 Block header before block recovery: buffer tsn: 0 rdba: 0x06626f42 (25/2256706) scn: 0x08b7.b1dff478 seq: 0x01 flg: 0x04 tail: 0xf4780601 frmt: 0x02 chkval: 0x8da3 type: 0x06=trans data Doing block recovery for file 25 block 2256706 Block header before block recovery: buffer tsn: 0 rdba: 0x06626f42 (25/2256706)     -------------------- It looks like PMON is trying to recover a block, and is unable to do so. select * from dba_extents where 2256706 between block_id and block_id + blocks SQL> i 2 and file_id = 25; SYS I_OBJ5 INDEX SYSTEM 70 25 2256640 1048576 128 25     以上は25番ファイルの2256706にエラになった。該当するオブジェクトはSYSのインディクスi_obj5である。けど、これはディクショナリーテーブルOBJ$のインディクスだから、再構造できない:     No ddl is allowed for i_obj5 as it is needed for warm start: SQL> drop index i_obj5; drop index i_obj5 * ERROR at line 1: ORA-00701: object necessary for warmstarting database cannot be altered   alter system set events '10293 trace name context forever, level 1'; and also get 3 PMON errorstack at level 5133 in 1 min intervals. dbv userid=sys/pass file= blocksize= start=2256706 end=2256706     以上はインディクスに対して、どんなオペレーションを実行しても、ORA-701エラになる。これで、特別な手段でI_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5などSYSインディクスをリカバリしてください。