Resolving Logical Block Corruption Errors in a Physical Standby Database
(Doc ID 2821699.1)
Last updated on NOVEMBER 08, 2022
Applies to:Oracle Database - Enterprise Edition - Version 184.108.40.206 to 220.127.116.11.0 [Release 12.1 to 19]
Oracle Cloud Infrastructure - Exadata Cloud Service - Version N/A to N/A [Release N/A]
Gen 2 Exadata Cloud at Customer - Version All Versions to All Versions [Release All Releases]
Information in this document applies to any platform.
With DB_BLOCK_CHECKING=MEDIUM or FULL on the standby, the standby database is effective mechanism to detect logical corruptions on the primary database especially when the primary database may not have DB_BLOCK_CHECKING enabled due to the performance overhead. This note describes repair options when standby redo apply detects logical corruptions that were introduced by the primary database due to DB_BLOCK_CHECKING settings described above.
Before enabling block checking with this parameter, Oracle recommends that you detect and repair any logical corruptions in the database.
Otherwise, a block that contains logical corruption will be marked as "soft corrupt" after block checking is enabled and the block is modified
by a DML statement. This will result in ORA-1578 errors and the block will be unreadable. For more information about detecting and repairing
logical corruptions, see Oracle Database Backup and Recovery User’s Guide.
Also Refer to Best Practices for Corruption Detection, Prevention, and Automatic Repair - in a Data Guard Configuration (Doc ID 1302539.1) and RESOLVING ORA-752, ORA-753 or ORA-600  DURING PHYSICAL STANDBY RECOVERY (Doc ID XXXXX)
The following is a list of the block checking errors, note that the errors are only reported is db_block_checking is set to MEDIUM or FULL:
- ORA-00600 [kdbBlkCheckError]
- Corrupt block for TABLE segments
- ORA-600 [kdlBlkCheckError]
- Corrupt block for DATA blocks
- ORA-00600 [kdxdBlkCheckError]
- Corrupt block for an INDEX segment
- Note that an index can be an Index Organized Table (IOT)
- ORA-00600 [kdliBlkCheckError]
- Corrupt block for LOB segments
- ORA-00600 [ktfBlkCheckError] or ORA-00600 [ktfbnBlkCheckError]
- Bigfile tablespace check error
- This is when the logical corruption is in a block related to metadata of a big file tablespace (file bitmap).
- ORA-00600 [ktsBlkChekError]
- Space management metadata
- This could be related to any segment
- ORA-00600 [ktspBlkCheckError]
- Space management metadata segment header block or Extent Map Block
- ORA-00600 [ktuBlkCheckError]
- Corrupt block for UNDO segment blocks
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document
|Determining Root Cause|
|Primary Database Logical Corruptions|
|Repair Option 1: Determine if affected objects can be recreated and recovery allowed to continue:|
|Repair Option 2: Use Block Media Recovery(BMR) to Repair the Corrupted Block|
|Repair Option 3: Activate the standby database|
|Protecting Against Logical Corruptions|