Skip to Content
0

RMAN has detected corrupt blocks

Feb 21, 2017 at 11:05 AM

76

avatar image

Hi All,

Me again, I've just done a full online backup to disk with verify using RMAN. During the backup I have got some errors reported.

BR0284I BRBACKUP time stamp: 2017-02-21 01:33:25, elapsed time: 0:39
BR0398E RMAN has detected corrupt blocks in /oracle/backup/BWD/sapreorg/bwd.data11
  File Name: /oracle/backup/BWD/sapreorg/bwd.data11
  Block Type Blocks Failing Blocks Processed


  Data       0              707637
  Index      1              310402
  Other      0              17338
validate found one or more corrupt blocks
See trace file /oracle/BWD/saptrace/diag/rdbms/bwd/BWD/trace/BWD_ora_11972.trc
BR0284I BRBACKUP time stamp: 2017-02-21 01:47:22, elapsed time: 0:20
BR0398E RMAN has detected corrupt blocks in /oracle/backup/BWD/sapreorg/bwd701.data1
  File Name: /oracle/backup/BWD/sapreorg/bwd701.data1
  Block Type Blocks Failing Blocks Processed


  Data       0              538555
  Index      32             530953
  Other      0              445267
validate found one or more corrupt blocks
See trace file /oracle/BWD/saptrace/diag/rdbms/bwd/BWD/trace/BWD_ora_7808.trc for details

I used dbv to validate the corrupt block against the first file and got the same block being reported.

dbv file=/oracle/BWD/sapdata3/bwd_11/bwd.data11 feedback=10000 blocksize=8192

DBVERIFY: Release 12.1.0.2.0 - Production on Tue Feb 21 10:38:59 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

DBVERIFY - Verification starting : FILE = /oracle/BWD/sapdata3/bwd_11/bwd.data11
........................................Block Checking: DBA = 29762479, Block Type = KTB-managed data block
**** kdxcoavs = -287 < 0, avail = 353
---- end index block validation
Page 402351 failed with check code 6401
........................................
.........................

DBVERIFY - Verification complete

Total Pages Examined         : 1048576
Total Pages Processed (Data) : 707381
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 310658
Total Pages Failing   (Index): 1
Total Pages Processed (Other): 17338
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 13199
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 594940183 (4.594940183)

So it's reporting that block/page 402351 is corrupt and is of type index. Now I have followed several blogs and guides and even sap notes to identify the index in question.

https://blogs.sap.com/2008/04/14/some-hints-to-make-handling-of-oracle-datablock-corruptions-more-efficient/

https://wiki.scn.sap.com/wiki/display/ORA/Consistency+Check+with+RMAN

https://launchpad.support.sap.com/#/notes/0000365481

So using the file id 36 and the block number 402351 I tried to identify the index. However the queries return nothing!

create table TMP_EXTENTS tablespace PSAPBWDUSR as
(select owner, segment_name, partition_name, segment_type, file_id, block_id, blocks
from dba_extents where rownum<1);


insert /*+append*/ into tmp_extents
(select owner, segment_name, partition_name, segment_type, file_id, block_id, blocks
from dba_extents);


create index i_tmp_ext on tmp_extents ( file_id, block_id, blocks) tablespace PSAPBWDUSR;

analyze table tmp_extents compute statistics;

select owner, segment_name, partition_name, segment_type, block_id, blocks
from tmp_extents
where (402351 between
        block_id and (block_id + blocks - 1))
 and file_id = 36
 and rownum < 2;

What do I do now to help resolve this?

Thanks

Craig

10 |10000 characters needed characters left characters exceeded

I followed another blog entry linked to another :- https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=440828791

Which gave me another query to run :-

select ext.owner, ext.segment_name, ext.partition_name, ext.segment_type, ext.block_id, ext.blocks, dbc.corruption_type, fil.file#, fil.name as file_name 
from  
tmp_extents ext,  
v$datafile fil,  
v$database_block_corruption dbc 
where  
(dbc.block# between ext.block_id 
and 
(ext.block_id + ext.blocks - 1))  
and 
dbc.file# = ext.file_id  
and 
dbc.file# = fil.file# 
order by ext.file_id;

SAPBWD	SEOCOMPODF^TYP		INDEX	573065	128	CORRUPT	41	/oracle/BWD/sapdata1/bwd701_1/bwd701.data1

However I have since rebuilt this index and it still says corrupt block. This as will be noticed is for the other error we have not the first one!

0
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Best Answer
Craig Armstead Feb 22, 2017 at 11:26 AM
0

So it seems I resolved this by reorganising the tablespace into a new one - problem was due to those blocks being in free space. But one last error remained, re-running the RMAN validate got rid of that error.

Cheers

Craig

Share
10 |10000 characters needed characters left characters exceeded