【Oracle数据库恢复】I_OBJ1、I_OBJ2、I_OBJ3、I_OBJ4、I_OBJ5等SYS索引的修复

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索引。

 

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569    邮箱:service@parnassusdata.com

 

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号