Oracle v$database_block_corruption View Refresh After Fix

corruptionoraclerman

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.

Best Answer

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.