Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > ORA-00701: データベースの起動に必要なオブジェクトを変更できません。

ORA-00701: データベースの起動に必要なオブジェクトを変更できません。

ORA-00701: データベースの起動に必要なオブジェクトを変更できません。

 

 

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

 

 ORA-00701: データベースの起動に必要なオブジェクトを変更できません。

 

 

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インディクスをリカバリしてください。