Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, oracle.

Asked: October 05, 2016 - 12:21 pm UTC

Last updated: July 08, 2017 - 11:29 am UTC

Version: 11.2.0

Viewed 10K+ times! This question is

You Asked

Hi,

Can you pls let me know what is the difference between -

select * from v$database_block_corruption;

corruption column showing -

corruption or fractured

What is corruption and
what is fractured

How to resolve corruption or fractured.

Thanks

and Connor said...

From the docs:

"CORRUPT - Block is wrongly identified or is not a data block (for example, the data block address is missing)"

So a corrupt block is simply garbage. We went to read a block, but we couldnt even work out if it was an Oracle block or not. It could be anything.

"FRACTURED - Block header looks reasonable, but the front and back of the block are different versions."

When we write a block, we want to write an Oracle block (typically 8k) to disk. But the underlying OS might not support a single 8k write - it might do (say) 4k writes, so it breaks up the request into 2 x 4k writes. If one of them didnt work or got corrupted, then when we read the 8k block next time off disk, the first 4k of the block might look fine, but it wont match the last 4k of the block. The block is hence "fractured". Sometimes these are transient errors, for example, when RMAN encounters one it will normally try to re-read the same block/

The type of corruption typically doesnt matter too much - you would need to use standard block recovery techniques to resolve.


Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

oracle oracle, October 06, 2016 - 11:11 am UTC

Thanks for reply.

Question, how to repair fractured block

Vipin R, July 07, 2017 - 8:55 pm UTC

How to repair fractured block, which have no segment in it now. I have fracture block and it have index segment, which is rebuild but I still see that block marked as fractured. How to clear it?
Connor McDonald
July 08, 2017 - 11:29 am UTC

If you are on Enterprise Edition you can use RMAN

RMAN> blockrecover datafile NNN block BBBBBB;

but otherwise, if the fractured block is now no longer being occupied by a segment, you dont need to worry about it. Oracle will eventually re-use the block for other things and reformat it in the process.

More to Explore

Backup/Recovery

Check out the complete guide to all of the Backup & Recovery techniques in the Oracle Database.