cancel
Showing results for 
Search instead for 
Did you mean: 

Block corrupted

fabiosax
Advisor

Block corrupted

Hello there,
I got the following error message:
ORA-01578: ORACLE data block corrupted (file # 42, block # 16373) ORA-01110: data file 42: '/Oracle9i/OraHome/oradata_nas/ERIDBCQ/CQ_LTBDB2.ora'

Could you please someone help me to how to fix these corrupted block?
I tried to run the rman utility without success {blockrecover datafile 42 block 16373;} and now i'm going to user the DBMS_REPAIR..

I have Oralce9i on Solaris 9.
Thanks in advance
Fabio
8 REPLIES
Peter Godron
Honored Contributor

Re: Block corrupted

Steven E. Protter
Exalted Contributor

Re: Block corrupted

Shalom Fabio,

You don't really fix a corrupted block. The database tries to move/reconstruct the data elsewhere. If that fails you either have to restore the missing data or perhaps the entire database.

We've seen it happen and figured out what records were corrupt and wrote a sqlplus script to put them back from a backup.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
fabiosax
Advisor

Re: Block corrupted

Thanks so much for your info... really appreciated..
So i followed the instruction you sent and after i run the DBMS_REPAIR.CHECK_OBJECT and verified the corrupted block I run the FIX_CORRUPT_BLOCKS. Then I run the finding the orphan index and the result was 28.
After having found the index name trying to rebuild it i got the following error:
"ALTER INDEX SYS_IL0000036518C00039$$ REBUILD online;
ALTER INDEX SYS_IL0000036518C00039$$ REBUILD online
*
ERROR at line 1:
ORA-01418: specified index does not exist"

But it exists!!!
Any idea..? thanks so much..
The main problem is that i don't have any backup of the damage datafile, but just an early one because we had a blackout and no chance to made it.
Thanks!!!!
Fabio
Peter Godron
Honored Contributor

Re: Block corrupted

Fabio,
if it is the index that is faulty, can't you just recreate the index with drop/create?

This would not be possible with table data fault, unless you have a backup.
Yogeeraj_1
Honored Contributor

Re: Block corrupted

hi fabio,

Based on the assumption that you identified the "faulty" object to be an idex, i would recommend the following:

1. alter index rebuild pctfree tablespace

2. Stop using the tablespace for any new objects

3. create another tablespace and move all the objects from the old tablespace to the new.

Then, try to see if there are any error messages relating to I/O or disk at the OS level.

hope this helps!

kind regards
yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
fabiosax
Advisor

Re: Block corrupted

Sorry if i still bother you but just to clarify to me...
So after i marked the corrupted block as true with DBMS.REPAIR I used the DBMS_REPAIR.DUMPORPHAN_KEYS and the result is:
orphan key count: 28.
So now i wonder if exists something to mark and fix these orphan key.
Thanks in advance.
Regards,
Fabio
Bill Hassell
Honored Contributor

Re: Block corrupted

Just to be sure that the disk is OK, check /var/adm/syslog/syslog.log for disk errors. If there are erros, no amount of 'repairing' will fix the problem -- the disk is damaged and must be replaced. Use dd to check the entire disk surface as in:

dd if=/dev/rdsk/EachDISK of=/dev/null bs=256k

(replace EachDISK with the c0t0d0 name of your disks.


Bill Hassell, sysadmin
fabiosax
Advisor

Re: Block corrupted

Hello there, just to let you know that i managed to fix the problem creating a new table asn selecting from the corrupted one using the rowid.

Thanks to everyone for your support and help.
Regards,
Fabio