Originally posted by Axr2
I can't get the damn dbms_repair.fix_corrupt_blocks to work.
Oracle support gave me some gobbledygook about dbms_repair not being able to fix "fractured" blocks. No mention about it the manuals though..

Per support :
"The DBMS_REPAIR package is used to work with corruption in the
transaction layer and the data layer only (software corrupt blocks).
Blocks with physical corruption (ex. fractured block) are marked as
the block is read into the buffer cache and DBMS_REPAIR ignores all
blocks marked corrupt."


Details of my corruption :
SQL> l
1 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT,
2 CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION
3* FROM REPAIR_TABLE
SQL> /

OBJECT_NAME BLOCK_ID CORRUPT_TYPE MARKED_COR
------------------------------ ---------- ------------ ----------
CORRUPT_DESCRIPTION
--------------------------------------------------------------------------------
REPAIR_DESCRIPTION
--------------------------------------------------------------------------------
CASE_DOCKET_PARAMETERS 114774 6148 TRUE

mark block software corrupt

CASE_DOCKET_PARAMETERS 114775 6148 TRUE

mark block software corrupt

CASE_DOCKET_PARAMETERS 114774 6148 TRUE

mark block software corrupt

CASE_DOCKET_PARAMETERS 114775 6148 TRUE

mark block software corrupt

CASE_DOCKET_PARAMETERS 114774 6148 TRUE

mark block software corrupt

CASE_DOCKET_PARAMETERS 114775 6148 TRUE

mark block software corrupt


6 rows selected.

SQL> select * from V$DATABASE_BLOCK_CORRUPTION;

FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
57 114774 1 0 FRACTURED
57 114775 1 0 FRACTURED
67 147737 1 0 FRACTURED
67 147738 2 0 FRACTURED
70 217721 1 0 FRACTURED
70 217722 2 0 FRACTURED
72 105401 1 0 FRACTURED
72 105402 2 0 FRACTURED
84 83409 1 0 FRACTURED
84 83410 2 0 FRACTURED

10 rows selected.

PS : Oh and btw file# 70,72 don't even exist on the database..