A block in which the header and footer are not consistent at a given SCN. In a user-managed backup, an operating system utility can back up a datafile at the same time that DBWR is updating the file. It is possible for the operating system utility to read a block in a half-updated state, so that the block that is copied to the backup media is updated in its first half, while the second half contains older data. In this case, the block is fractured.
For non-RMAN backups, the ALTER TABLESPACE … BEGIN BACKUP or ALTER DATABASE BEGIN BACKUP command is the solution for the fractured block problem. When a tablespace is in backup mode, and a change is made to a data block, the database logs a copy of the entire block image before the change so that the database can reconstruct this block if media recovery finds that this block was fractured.
The block that the operating system reads can be split, that is, the top of the block is written at one point in time while the bottom of the block is written at another point in time. If you restore a file containing a fractured block and Oracle reads the block, then the block is considered a corrupt.
What Happens When A Tablespace/Database Is Kept In Begin Backup Mode (Doc ID 469950.1)
1. For checking the Oracle Database from corruption/Fractured block.
From RMAN: Rman> backup validate check logical database; From OS: dbv file=’E:\oracle\oradata\sysauz01.dbf’
2. Following block show the block id,file id, type of corruption after RMAN command
Select * from v$database_block_corruption;
3. Find the object_name,object_type from following view:
select * from dba_extents where file_id = &DATA_FILE_ID and &CORRUPTED_BLOCK_ID between block_id AND block_id + blocks – 1;
4. If you find fractured block in free space then you follow oracle(Doc ID 336133.1)
First option:
According to this doc id, for remove the fractured block in free space. you need
to write on that block then it will automatically fixed the issue.
SQL> SELECT * FROM v$database_block_corruption; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO ———- ———- ———- —————— ——— 13 443343 1 0 FRACTURED
After getting error rerun the validate command for rman for verify
connect target / connect catalog rmancatalog/rmancatalog@catalog run { allocate channel…; blockrecover datafile 13 block 443343; release channel …; }
Second option:
You create one new tablespace and move the objects from that tablespace to new tablespace and resize the datafile which having fractured block.