0

I have a table that contain several corrupted data blocks and I use the stored procedure reside in the “DBMS_REPAIR” to mark the data blocks as corrupted data blocks so that I can keep query to the table. After the stored procedure is executed, everything goes fine, I use rman to check the corruption by command:

validate datafile number

and the output still keep reporting the corruption, nothing change in the v$database_block_corruption ,so howv$database_block_corruption can be refresh, did I have to rebuild the table by such statement :

create table TABLE_BAK as select * from TABLE_CORRUPTED; 
drop table TABLE_CORRUPTED;
RENAME table TABLE_BAK to TABLE_CORRUPTED;

By the way: I don`t have any backup to restore the data block.

0

It is not neccessary. You can leave the corruption in place if you have correctly marked the affected blocks as corrupt. But you must accept that tools such as RMAN will alert you about these blocks every time you perform an action on them. e.g. whenever you take a backup of this datafile.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.