ORA-19566: exceeded limit of 0 corrupt blocks for file npx13.dbf
                                                 Last update (2011-10-13 19:19:43)
                                                                                                                   Date added (2011-10-12 16:07:40)

Summary
The RMAN database backup script ends with error:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ch02 channel at 10/08/2011 18:18:35
ORA-19566: exceeded limit of 0 corrupt blocks for file /oradb/NPDEV/oradata17/xnpx13.dbf

Recovery Manager complete.
logout

Script /oradb/NPDEV/orabin/netbackup/scripts/npdev_online.sh
You can check if there are corrupted blocks to the specific datafiles with the command:
SELECT * FROM dba_data_files 
WHERE file_name LIKE '/oradb/NPDEV/oradata17/xnpx13.dbf';
after finding the file_id you can use RMAN to check for corruptions for the specific datafile
rman target / catalog rman/*****@rman
Recovery Manager: Release 9.2.0.8.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database: NPDEV (DBID=4192835957)
connected to recovery catalog database

RMAN> RUN { 
2> allocate channel ch01 TYPE 'SBT_TAPE';
3> send 'NB_ORA_CLIENT=clnode5';
4> BACKUP VALIDATE CHECK LOGICAL datafile 511;
5> }

allocated channel: ch01
channel ch01: sid=307 devtype=SBT_TAPE
channel ch01: Veritas NetBackup for Oracle - Release 6.5 (2010042404)

sent command to channel: ch01

Starting backup at 12-OCT-11
channel ch01: starting full datafile backupset
channel ch01: specifying datafile(s) in backupset
input datafile fno=00511 name=/oradb/NPDEV/oradata17/xnpx13.dbf
channel ch01: backup set complete, elapsed time: 00:16:36
Finished backup at 12-OCT-11
released channel: ch01

RMAN>
Check for corrupted blocks:
SQL> SELECT * FROM v$database_block_corruption;

     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
       511    1719526          1                  0 FRACTURED
       511    1719527          1                  0 FRACTURED
But if you check for blocks 1719526, 1719527 you will notice that they don't belong to any segment!
SELECT owner, segment_name, segment_type, partition_name, 
   511, 1719526 FROM dba_extents 
   WHERE file_id=511
   AND 1719526 BETWEEN block_id AND block_id+blocks-1;

no rows selected
RMAN reads blocks on the disk level, so it is not aware if they belong to an object. Thus if an object with corrupted blocks is dropped, those blocks remain FRACTURED until reused by a new object or allocated to an existing segment. At that time, Oracle will reformat the block (renew it) and thus remove the fructure.

The possible solutions are:

1. Try to use the fractured blocks, for example with new extends. You can follow the Metalink Note
Rman Still Reports Blocks Corrupted After Corruption is Dropped [ID 437306.1]

2. Use the parameter MAXCORRUPT at the RMAN backup script, for example
....
SET MAXCORRUPT FOR DATAFILE 511 to 3;
BACKUP DATABASE;
....
Reviews
Filters
Search