Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Block Corruptions
Hi Richard,
The first thing you need to know, is where is the corruption!
If the block corruption is in unused space, then you could try and create a DO_NOT_DELETE table over the bad blocks, If the corruption is associated with an index, the you could drop the index, create the DO_NOT_DELETE object, and then recreate the index, If the corruption is associated with a table, then you have a problem (obviously). First you need to try and export the data using standard exp, but this will probably fail, so you then need to try the hidden parameter that allows the database to skip a bad block (check with Oracle for the parameter, a hint "it's hidden aka underscore), and then re perform the export.
You will need the table with the corruption, and if you are intending to recreate the tablespace, then you also need all other objects.
The bad news though is trying to identify what has been corrupted, and what records have been left hanging without the corrupted parents, or even parents without the corrupted child. If you are running RI on the database then you can use the validate table options.
Good luck,
Andrew
BTW - To obtain the object that is corrupted, incase you don't know.
Take file_id and block_id reported by DBVerify and pass into this query.
select segement_name, segment_type, tablespace_name
from dba_extents
where file_id = &file_id
and &block_id between block_id and block_id + blocks;
Richard Creasey wrote:
> I'm need to correct two block corruptions indicated with DBVerify.
>
> I had two Veritas write errors on Raw files using fast I/O on Solaris
> 2.6
> that are used for Oracle Tablespaces which in turn create two errors
> when
> DBVerify was run against them.
>
> My question is... How you correct bad blocks?
>
> Thanks for any help.
>
> removespam_creas002_at_mc.duke.edu
Received on Thu May 13 1999 - 20:16:31 CDT