Recently I was involved in recovering data after several blocks in production DB got corrupted.
Disclaimer: I'm by no means a competent DBA, but rather a PL/SQL developer with quite a bit (I guess) of experience, so maybe I'm missing something quite obvious here. Sorry for that.
DBMS_REPAIR package provides the procedure
SKIP_CORRUPT_BLOCKS which is pretty much self-explanatory (allows accessing table despite it having corrupted blocks).
After it is used you can check
DBA_TABLES.SKIP_CORRUPT column (which becomes
ENABLED instead of being
DISABLED by default).
Now that the dust has settled, all the data has been recovered and, hopefully, lessons has been learnt, I can't seem to find a way to switch it back without recreating the table (if some day another block in this segment gets corrupted, I'd rather have the queries fail than silently skip rows from corrupted blocks).
Is there a way to disable
SKIP_CORRUPT without recreating the table?