-
How to remove orphan fractured blocks?
RMAN reported some blocks to be damaged in the datafile, I found the object (2 tables), found that blocks were marked as soft damaged and since tables weren`t a part of something critical I simply copied data into diff. location and recreated both tables.
Now out of 31 damaged blocks for some reason I have 4 left.
database_block_corruption view says:
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION_TYPE
14 29 4 0 FRACTURED
query
select * from dba_extents where file_id = 14
and 29 between block_id and block_id+blocks -1
returns nothing for 29-33 blocks so I supposed those blocks are unused. RMAN still produces this in alert log:
Corrupt block relative dba: 0x0380001f (file 14, block 31)
Bad header found during buffer read
Data in bad block -
type: 78 format: 7 rdba: 0x545f4f50
last change scn: 0x500a.545f4752 seq: 0x2e flg: 0x20
consistency value in tail: 0x20435553
check value in block header: 0x2e20, block checksum disabled
spare1: 0x41, spare2: 0x54, spare3: 0x6578
***
Reread of rdba: 0x0380001f (file 14, block 31) found same corrupted data
Thu Oct 7 15:44:52 2004
For now I included:
set maxcorrupt for datafile '/oracle_db0/oradata/ENKLAV/tbl2_2.dbf' to 999;
into RMAN script but it is not a solution! Why those 4 blocks weren`t released?
WHAT DOES IT WANT AND HOW TO FIX IT?
Last edited by utkinpol; 10-07-2004 at 04:59 PM.
-
1. What's the max block_id being used by a segment (on that datafile)? If that's lesser than 31, resize the datafile.
If "select * from dba_extents where file_id = 14
and 29 between block_id and block_id+blocks -1"
returns nothing, you might be able to shrink the datafile and get rid of the corruption (if you're really lucky). Resize the datafile to the smallest possible value, then run ur dbverify.
2. If the corruption still exists, too bad. Fractured blocks cannot be fixed using dbms_repair. All you can do is sort of work around it. "Set maxcorrupt on file ## to 5;" within RMAN and RMAN will ignore the corrupt blocks during backup. All you can do is create a new tablespace, export stuff, then drop the old one.
-
Thanks. I figured out the same. It`s quite frustrating.
Hopefully those blocks will be reused and overwritten in some distant future...
-
Originally posted by utkinpol
Hopefully those blocks will be reused and overwritten in some distant future...
Actually, you don't want them to be reused. A fractured block is physical corruption for all practical purposes. You don't want anything to get written to it.
-
It's nice that rman found the blocks and all but you are missiing the root cause, have you done dilliegence on what cause the corrupt block and fixed it? where there's smoke there's fire, I'll bet if you don't fix this eventually you'll see rman reporting more of these. Try the basics like scan disks, check controllers, check sys logs
I'm stmontgo and I approve of this message
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|