Document 457422.1
Document 457422.1
Document 457422.1
1
Copyright (c) 2024, Oracle. All rights reserved. Oracle Confidential.
RMAN Reports an ORA-19566: Exceeded Limit Of 0 Corrupt Blocks From Backup And No Segment Associated (Doc ID
457422.1)
In this Document
Symptoms
Changes
Cause
Solution
References
APPLIES TO:
SYMPTOMS
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ch1 channel at 09/01/2007 19:38:44
ORA-19566: exceeded limit of 0 corrupt blocks for file /<path>/<datafilename>.dbf
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=pldhbisef_150&id=457422.1 1/3
6/3/24, 11:44 AM Document 457422.1
Please note Page number (One which is highlighted) reported in dbverify output at the start is the Oracle block number having the corruption.
3. The following SQL statement is executed to determine that there is no segment associated
CHANGES
CAUSE
Corrupted blocks will still be reported by RMAN and DBV until they are reused and reformatted.
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 corrupted until reused by a new
object or allocated to an existing table. At that time, Oracle will reformat the block (renew it)
and thus remove the corruption. If the following query does not report any objects being used by
the block:
then, the corrupted block is still being seen as corrupted, because it has not been reused and
renewed by Oracle.
SOLUTION
In this case, Resizing the datafile from 2GB to 1GB resolved the issue.
This only works if the block is in the GB that we've resized back, so, the best solution is NOTE 336133.1 as in most of the cases this will not work.
Set maxcorrupt = the number of blocks for that file on backup, and periodically check if the block
becomes used by the system. If RMAN finds any other corrupted blocks, it will report them. Once
you see in dba_extents that the block is allocated by an object, you can reduce the number of
blocks and eventually remove the 'maxcorrupt' setting for that file altogether.
For example, in this case add the following to the backup command:
In Above example Dbverify had reported one block as corrupted. So we used set maxcorrupt to 1 for that datafile.
Corruption in any other file would be reported. If a second block is found corrupted in datafile 24, RMAN would report it.
Please note in this case RMAN would backup the corrupted block as it is in Corrupted state.
See Note 336133.1 How to Format Corrupted Block Not Part of Any Segment for details.
REFERENCES
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=pldhbisef_150&id=457422.1 2/3
6/3/24, 11:44 AM Document 457422.1
NOTE:269028.1 - DBV Reports Corruption Even After Drop/Recreate Object
NOTE:336133.1 - How to Format Corrupted Block Not Part of Any Segment
NOTE:1088018.1 - Primary Note for Handling Oracle Database Corruption Issues
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=pldhbisef_150&id=457422.1 3/3