Master Note for Handling Oracle Database Corruption Issues [ID 1088018.1]
Master Note for Handling Oracle Database Corruption Issues [ID 1088018.1]
In this Document
Details
Actions
CORRUPTION EXPLANATION
KIND OF CORRUPTIONS
HOW TO HANDLE SEGMENT CORRUPTIONS
PACKAGE INFORMATION AND EXAMPLES
TOOLS
GENERIC LINKS
COMMON ERRORS
References
Applies to:
Details
Actions
CORRUPTION EXPLANATION
KIND OF CORRUPTIONS
HOW TO HANDLE SEGMENT CORRUPTIONS
PACKAGE INFORMATION AND EXAMPLES
TOOLS
GENERIC LINKS
COMMON ERRORS
References
Applies to:
Oracle Server - Enterprise Edition - Version 9.2.0.8 to 11.2.0.2.0 [Release 9.2 to 11.2]
Information in this document applies to any platform.
Details
Information in this document applies to any platform.
Details
*Details
Enter details of the announcement. Enter a clear description of the major issue or topic covered by the announcement. Be descriptive. It is this section that will guide the reader to decide whether the document is for him/her.
The goal of this article is to give a global picture about corruption errors and appropiate actions deppending where the corruption is found.
In addition to the Support Notes below, you can get additional information here: My Oracle Support Comunity
The information contained in this targets product administrators.
In the common errors is possible to show only the notes related with an specific error or with an specific kind of corruption by clicking the desired button.
Actions
CORRUPTION EXPLANATION
What is a corruption?
Note 840978.1 : Physical and Logical block corruption
Note 840978.1 : Physical and Logical block corruption
How to force reformat a corrupted block?
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment How to identify corruptions in a database?
Note 472231.1 : How to identify all the Corrupted Objects in the Database reported by RMAN
Note 819533.1 : How to identify the corrupt Object reported by ORA-1578 / RMAN / DBVERIFY
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment How to identify corruptions in a database?
Note 472231.1 : How to identify all the Corrupted Objects in the Database reported by RMAN
Note 819533.1 : How to identify the corrupt Object reported by ORA-1578 / RMAN / DBVERIFY
Known corruptions caused by OS/HW Issues
Note 1323649.1 : Known Corruption issues caused by 3rd party Software Provider
KIND OF CORRUPTIONS
Note 1323649.1 : Known Corruption issues caused by 3rd party Software Provider
KIND OF CORRUPTIONS
SEGMENT CORRUPTED
How to handle Segment Corruptions (Table, Index, LOB, Long, IOT, Temporary) This section refers to BLOCK CORRUPTION affecting database segments.
Note 428526.1 : Baddata Script. To Check Database For Corrupt column data
Note 428526.1 : Baddata Script. To Check Database For Corrupt column data
CONTROLFILE CORRUPTION
Note 1072762.6 : ORA-00227, ORA-00202: BRING UP INSTANCE AFTER MACHINE CRASH
UNDO CORRUPTION
UNDO CORRUPTION
Note 281429.1 : Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
Note 39283.1 : ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"
Note 431652.1 : How to Change the Existing Undo Tablespace to a New Undo Tablespace
Note 39283.1 : ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"
Note 431652.1 : How to Change the Existing Undo Tablespace to a New Undo Tablespace
DICTIONARY CORRUPTION
Note 136697.1 : "hcheck.sql" script. to check for known problems in Oracle8i, Oracle9i, Oracle10g and Oracle 11g
REDO CORRUPTION
REDO CORRUPTION
Note 1031381.6 : How to Dump Redo Log File Information.
ROW & COLUMN CORRUPTION
ROW & COLUMN CORRUPTION
Note 976591.1 : HowTo validate a date/timestamp column
Note 869305.1 : How To identify a 'corrupt' row when error is raised b
HOW TO IDENTIFY TABLE/INDEX INCOSISTENCY
Note 869305.1 : How To identify a 'corrupt' row when error is raised b
HOW TO IDENTIFY TABLE/INDEX INCOSISTENCY
Note 136620.1 : Sanity Check of Oracle NUMBERS, How to Find and Patch
HOW TO HANDLE SEGMENT CORRUPTIONS
HOW TO HANDLE SEGMENT CORRUPTIONS
TABLE CORRUPTION
Note 28814.1 : Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
INDEX CORRUPTION
INDEX CORRUPTION
Note 28814.1 : Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Note 438143.1 : Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 : How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
LOB
Note 438143.1 : Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 : How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
LOB
Note 452341.1 : How to detect Lob Corruption
Note 293515.1 : ORA-1578 ORA-26040 in a LOB segment - Script. to solve the errors
LONG
Note 293515.1 : ORA-1578 ORA-26040 in a LOB segment - Script. to solve the errors
LONG
Note 876493.1 : How to rebuild a table with a block corruption in a LONG (limited note)
IOT
IOT
** Contact Oracle Support ** -->> Generic notes about these objects: * None Public*
TEMPORARY
Note 1332088.1 : How to clear corruption in temporary segment not in temp tablespace
Note 422039.1 : Steps to drop a temporary segment while SMON is not able
Note 422039.1 : Steps to drop a temporary segment while SMON is not able
PACKAGE INFORMATION AND EXAMPLES
DBMS_REPAIR
Note 556733.1 : DBMS_REPAIR script
Note 68013.1: DBMS_REPAIR example
DBMS_METADATA
Note 68013.1: DBMS_REPAIR example
DBMS_METADATA
Note 438143.1 : Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 : Q How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
Note 332077.1 : Why Does DBMS_METADATA.GET_DDL Not Show All Lines?
Note 188838.1 : Using DBMS_METADATA To Get The DDL For Objects
TOOLS
Note 394143.1 : Q How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
Note 332077.1 : Why Does DBMS_METADATA.GET_DDL Not Show All Lines?
Note 188838.1 : Using DBMS_METADATA To Get The DDL For Objects
TOOLS
DBV
Note 35512.1 : DBVERIFY - Database file Verification Utility (7.3.2 - 10.2)
Note 269028.1 : DBV Reports Corruption Even After Drop/Recreate Object
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment
EXPORT
Note 269028.1 : DBV Reports Corruption Even After Drop/Recreate Object
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment
EXPORT
Note 214369.1 : Using The Export Utility To Check For Database Corruption
RMAN
RMAN
Note 283053.1 : How To Use RMAN To Check For Logical & Physical Database Corruption
Note 1266059.1 : ABMR: HOW TO TEST AUTOMATIC BLOCK RECOVERY FEATURE
TRANSPORTABLE TABLESPACE
Note 1266059.1 : ABMR: HOW TO TEST AUTOMATIC BLOCK RECOVERY FEATURE
TRANSPORTABLE TABLESPACE
Note 733824.1 : HowTo Recreate a database using TTS
DATA RECOVERY ADVISOR
DATA RECOVERY ADVISOR
Note 1317849.1 : Data Recovery Advisor - Corruption Reference Guide
ORA600/7445 Error Lockup tool
ORA600/7445 Error Lockup tool
Note 153788.1 : ORA-600/ORA-7445 Error Look-up Tool
GENERIC LINKS
GENERIC LINKS
PATCHSET UPDATES (PSU) & CRITICAL PATCH UPDATES (CPU)
Note 268895.1 : Oracle Database Server Patchset Information, Versions: 8.1.7 to 11.2.0
Note 1061295.1 : Patch Set Updates - One-off Patch Conflict Resolution
Note 161549.1 : Oracle Database, Networking and Grid Agent Patches for Microsoft Platforms
Note 756671.1 : Oracle Recommended Patches -- Oracle Database
Note 742060.1 : Release Schedule of Current Database Releases
Note 161818.1 : Oracle Database (RDBMS) Releases Support Status Summary
Note 1061295.1 : Patch Set Updates - One-off Patch Conflict Resolution
Note 161549.1 : Oracle Database, Networking and Grid Agent Patches for Microsoft Platforms
Note 756671.1 : Oracle Recommended Patches -- Oracle Database
Note 742060.1 : Release Schedule of Current Database Releases
Note 161818.1 : Oracle Database (RDBMS) Releases Support Status Summary
COMMON ERRORS
You can restrict the list below with the notes related with one of the errors by the relevant button:
You can restrict too by where the corruption affects to:
Error
Note
Description Corruption related to:
ORA-1578
ORA-1578 is reported when a block is thought to be corrupt on read. Block
Note 1578.1 OERR: ORA-1578 "ORACLE data block corrupted (file # %s, block # %s)" Master Note
Note 18976.1 OERR: ORA-1578 "ORACLE data block corrupted (file # %s, block # %s)"
Note 1392417.1
Fractured Block explanation
Note 28814.1 Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Note 432923.1 Diagnosing and Resolving 1578 reported on a Local Index of a Partitioned table
ORA-1410 This error is raised when an operation refers to a ROWID in a table for which there is no such row.
The reference to a ROWID may be implicit from a WHERE CURRENT OF clause or directly from a WHERE ROWID=... clause.
ORA 1410 indicates the ROWID is for a BLOCK that is not part of this table. Row
Note 806195.1 Understanding The ORA-1410
Note 422771.1 Summary Of Bugs Containing ORA 1410
Note 18815.1 OERR: ORA 1410 "invalid ROWID"
ORA-8103
The object has been deleted by another user since the operation began.
If the error is reproducible, following may be the reasons:-
a.) The header block has an invalid block type.
b.) The data_object_id (seg/obj) stored in the block is different than the data_object_id stored in the segment header. See dba_objects.data_object_id and compare it to the decimal value stored in the block (field seg/obj). Block
Note 268302.1 ORA-8103 Troubleshooting, Diagnostic and Solution
Note 8103.1 OERR: ORA-8103 "object no longer exists" / Troubleshooting, Diagnostic and Solution
ORA-8102
An ORA-08102 indicates that there is a mismatch between the key(s) stored in the index and the values stored in the table. What typically happens is the index is built and at some future time, some type of corruption occurs, either in the table or index, to cause the mismatch. Index
Note 8102.1 OERR ORA-8102 "index key not found, obj# %s, file %s, block %s (%s)
ORA-1499
An error occurred when validating an index or a table using the ANALYZE command.
One or more entries does not point to the appropriate cross-reference. Index
Note 563070.1 ORA-1499. Table/Index row count mismatch
Note 1499.1 OERR: ORA-1499 table/Index Cross Reference Failure - see trace file
ORA-1498
Generally this is a result of an ANALYZE ... VALIDATE ... command.
This error generally manifests itself when there is inconsistency in the data/Index block. Some of the block check errors that may be found:-
a.) Row locked by a non-existent transaction
b.) The amount of space used is not equal to block size
c.) Transaction header lock count mismatch.
While support are processing the tracefile it may be worth the re-running the ANALYZE after restarting the database to help show if the corruption is consistent or if it 'moves'.
Send the tracefile to support for analysis.
If the ANALYZE was against an index you should check the whole object. Eg: Find the tablename and execute:
ANALYZE TABLE xxx VALIDATE STRUCTURE CASCADE; Block
Note 18898.1 OERR: ORA 1498 "block check failure - see trace file"
ORA-26040
Trying to access data in block that was loaded without redo generation using the NOLOGGING/UNRECOVERABLE option.
This Error raises always together with ORA-1578 Block
Note 71344.1 OERR ORA-26040 Data block was loaded using the NOLOGGING option
Note 794505.1 ORA-1578 / ORA-26040 Corrupt blocks by NOLOGGING - Error explanation and solution
Note 293515.1 ORA-1578 ORA-26040 in a LOB segment - Script. to solve the errors
Note 1071869.1 ORA-1578 ORA-26040 in 11g for DIRECT PATH with NOARCHIVELOG even if LOGGING is enabled
Note 430230.1 ORA-1578 ORA-26040 On Awr Table
Note 272316.1 Errors ORA-01578, ORA-26040 On Standby Database
Note 416476.1 Workflow Tables ORA-01578 ORACLE data block corrupted ORA-26040 Data block was loaded using the NOLOGGING option
Note 763009.1 ORA-1578, ORA-26040 Data block was loaded using the NOLOGGING option
ORA-600[12700]
Oracle is trying to access a row using its ROWID, which has been obtained from an index.
A mismatch was found between the index rowid and the data block it is pointing to. The rowid points to a non-existent row in the data block. The corruption can be in data and/or index blocks.
ORA-600 [12700] can also be reported due to a consistent read (CR) problem. Consistent Read
Note 155933.1 Resolving an ORA-600 [12700] error in Oracle 8 and above.
Note 28229.1 ORA-600 [12700] "Index entry Points to Missing ROWID"
ORA-600[3020]
This is called a 'STUCK RECOVERY'.
There is an inconsistency between the information stored in the redo and the information stored in a database block being recovered. Redo
Note 30866.1 ORA-600 [3020] "Stuck Recovery"
Note 269352.1 Information Required for Root Cause Analysis of ORA-600 [3020] (stuck recovery)
ORA-600[4194]
A mismatch has been detected between Redo records and rollback (Undo) records.
We are validating the Undo record number relating to the change being applied against the maximum undo record number recorded in the undo block.
This error is reported when the validation fails. Undo
Note 39283.1 ORA-600 [4194] "Undo Record Number Mismatch While Adding Undo Record"
Note 281429.1 Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
ORA-600[4193]
A mismatch has been detected between Redo records and Rollback (Undo) records.
We are validating the Undo block sequence number in the undo block against the Redo block sequence number relating to the change being applied.
This error is reported when this validation fails. Undo
Note 39282.1 ORA-600 [4193] "seq# mismatch while adding undo record"
Note 281429.1 Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
Note 452662.1 Ora-600 [4193] When Opening Or Shutting Down A Database
Note 763566.1 ORA-600 [4193] When Trying To Open The Database
ORA-600[4137]
While backing out an undo record (i.e. at the time of rollback) we found a transaction id mis-match indicating either a corruption in the rollback segment or corruption in an object which the rollback segment is trying to apply undo records on.
This would indicate a corrupted rollback segment. Undo/Redo
Note 43914.1 ORA-600 [4137] "XID in Undo and Redo Does Not Match"
ORA-600[6101]
Not enough free space was found when inserting a row into an index leaf block during the application of undo. Index
Note 40640.1 ORA-600 [6101] "insert into leaf block (undo)"
ORA-600[2103]
Oracle is attempting to read or update a generic entry in the control file.
If the entry number is invalid, ORA-600 [2130] is logged. Control File
Note 28225.1 ORA-600 [2130] "Attempt to access non-existant controlfile entry"
ORA-600[4512]
Oracle is checking the status of transaction locks within a block.
If the lock number is greater than the number of lock entries, ORA-600 [4512] is reported followed by a stack trace, process state and block dump.
This error possibly indicates a block corruption. Block
Note 73455.1 ORA-600 [4512] "Lock count mismatch"
ORA-600[2662]
A data block SCN is ahead of the current SCN.
The ORA-600 [2662] occurs when an SCN is compared to the dependent SCN stored in a UGA variable.
If the SCN is less than the dependent SCN then we signal the ORA-600 [2662] internal error. Block
Note 28929.1 ORA-600 [2662] "Block SCN is ahead of Current SCN"
Note 1021243.6 ORA 600 [2662] DURING STARTUP
ORA-600[4097]
We are accessing a rollback segment header to see if a transaction has been committed.
However, the xid given is in the future of the transaction table.
This could be due to a rollback segment corruption issue OR you might be hitting the following known problem. Undo
Note 44893.1 ORA-600 [4097] "Corruption"
ORA-600[4000]
It means that Oracle has tried to find an undo segment number in the dictionary cache and failed. Undo
Note 47456.1 ORA-600 [4000] "trying to get dba of undo segment header block from usn"
ORA-600[6006]
Oracle is undoing an index leaf key operation. If the key is not found, ORA-00600 [6006] is logged.
ORA-600[6006] is usually caused by a media corruption problem related to either a lost write to disk or a corruption on disk. Index
Note 138899.1 ORA-600 [6006]
ORA-600[4552]
This assertion is raised because we are trying to unlock the rows in a block, but receive an incorrect block type.
The second argument is the block type received. Block
Note 138846.1 ORA-600 [4555]
ORA-600[6856]
Oracle is checking that the row slot we are about to free is not already on the free list.
This internal error is raised when this check fails. Row
Note 41719.1 ORA-600 [6856] "Corrupt Block When Freeing a Row Slot
ORA-600[13011]
During a delete operation we are deleting from a view via an instead-of trigger or an Index organized table and have exceeded a 5000 pass count when we raise this exception. Row
Note 28184.1 ORA-600 [13011] "Problem occurred when trying to delete a row"
ORA-600[13013]
During the execution of an UPDATE statement, after several attempts (Arg [a] passcount) we are unable to get a stable set of rows that conform. to the WHERE clause. Row
Note 28185.1 ORA-600 [13013] "Unable to get a Stable set of Records"
Note 816784.1 How to resolve ORA-00600 [13013], [5001]
ORA-600[13030]
Note 351760.1 ORA-600 [13030]
ORA-600[25012] We are trying to generate the absolute file number given a tablespace number and relative file number and cannot find a matching file number or the file number is zero. afn/rdba/tsn
Note 100073.1 ORA-600 [25012] "Relative to Absolute File Number Conversion Error"
ORA-600[25026] Looking up/checking a tablespace
invalid tablespace ID and/or rdba found afn/rdba/tsn
Note 335029.1 ORA-600 [25026]
ORA-600[25027] Invalid tsn and/or rfn found afn/rdba/tsn
Note 284433.1 ORA-600 [25027]
ORA-600[kcbz_check_objd_typ] An object block buffer in memory is checked and is found to have the wrong object id. This is most likely due to corruption. Buffer Cache
Note 406787.1 ORA-600 [kcbz_check_objd_typ_3]
Note 824154.1 ORA-600 [kcbz_check_objd_typ]
ORA-600[kddummy_blkchk] ORA-600[kdblkcheckerror] ORA-600[kddummy_blkchk] is for 10.1/10.2 and ORA-600[kdblkcheckerror] for 11 onwards. Block
Note 300581.1 ORA-600 [kddummy_blkchk]
Note 1342443.1 How to Resolve ORA-00600[kddummy_blkchk]
Note 882875.1 ORA-600 [kdblkcheckerror]
ORA-600[ktadrprc-1] Dictionary
Note 309315.1 ORA-600 [ktadrprc-1]
ORA-600[ktsircinfo_num1] This exception occurs when there are problems obtaining the row cache information correctly from sys.seg$. In most cases there is no information in sys.seg$. Dictionary
Note 139182.1 ORA-600 [ktsircinfo_num1]
ORA-600[qertbfetchbyrowid] Row
Note 300637.1 ORA-600 [qertbfetchbyrowid]
ORA-600[ktbdchk1-bad dscn] This exception is raised when we are performing a sanity check on the dependent SCN and fail.
The dependent scn is greater than the current scn. Dictionary
Note 139165.1 ORA-600 [ktbdchk1: bad dscn]
Document History
10-Jun-2010 Add references and correct some links.
07-Sep-2010 Renew links.
10-Jun-2010 Add references and correct some links.
07-Sep-2010 Renew links.
References
Related
Products
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Keywords
DATA CORRUPTION;DBVERIFY;DICTIONARY CORRUPTION;INDEX CORRUPTION;REDO CORRUPTION;SKIP_CORRUPT_BLOCKS;UNDO CORRUPTION
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-751639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Master Note for Tablespace IssuesAST
- Master Note - Troubleshooting DBCA Issues (文件 ID 1269459.1)AST
- * Master Note: Database Performance Overview (Doc ID 402983.1)ASTDatabaseORMView
- Master Note of Linux OS Requirements for Database Server [ID 851598.1]ASTLinuxUIREMDatabaseServer
- Master Note: Overview of Database ControlFiles (文件 ID 1493674.1)ASTViewDatabase
- Master Note of Linux OS Requirements for Database Server (Doc ID 851598.1)ASTLinuxUIREMDatabaseServer
- [翻譯]-Detect And Repair Corruption in an Oracle DatabaseAIOracleDatabase
- Master Note - Oracle GoldenGate (Doc ID 1298817.1)ASTOracleGo
- TOP Note: Solutions for Typical GI /RAC Database runInstaller Issues_1056713.1Database
- Master Note for Oracle Disk Manager (Doc ID 1226653.1)ASTOracle
- Master Note for RAC Oracle Clusterware and Oracle Grid Infrastructure 1096952.ASTOracleStruct
- Troubleshooting Database Hang Issues (Doc ID 1378583.1)Database
- Master Note: Overview of Oracle Tablespace Management (Doc ID 1493350.1)ASTViewOracle
- Master Note Oracle GoldenGate Management Pack - Director [ID 1307305.1]ASTOracleGo
- 【Oracle】Master Note for Parallel Execution Wait EventsOracleASTParallelAI
- The database owner SID recorded in the master database differs from the database owner SID recorded in database 'DB_NAME'DatabaseAST
- Master Note: Oracle Transaction Management (Local) Overview (Doc ID 1506115.1)ASTOracleView
- Master Note: Troubleshooting Oracle Tablespace Management (文件 ID 1522807.1)ASTOracle
- How to Collect Diagnostics for Database Hanging Issues (Doc ID 452358.1)Database
- How to Collect Diagnostics for Database Hanging Issues (文件 ID 452358.1)Database
- Master Note For ASM For OS Administrators [ID 1345562.1]ASTASM
- Troubleshooting Database Control Startup IssuesDatabase
- 5 forms of Oracle CorruptionORMOracle
- How to Restore the Database Using AMDU after Diskgroup CorruptionRESTDatabase
- Checking for Oracle archive log corruption [ID 1268590.1]OracleHive
- Master Note: Locks, Enqueues and Deadlocks [ID 1392319.1]ASTENQ
- zt_Notes for Oracle Database PSU/CPUOracleDatabase
- Top 5 Database and/or Instance Performance Issues in RAC EnvironmentDatabaseORM
- Master Note: Troubleshooting Oracle Background Processes_1509616.1ASTOracle
- 從v$database_block_corruption 刪除資料DatabaseBloC
- Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION`Database
- Master Note for Streams Recommended Configuration [ID 418755.1]AST
- Master Note Parallel Execution Wait Events [ID 1097154.1]ASTParallelAI
- Pre 11.2 Database Issues in 11gR2 Grid Infrastructure Environment_948456.1DatabaseASTStruct
- 11g Active Standby Database Automatic Block Corruption RepairDatabaseBloCAI
- Master Note for Automatic Storage Management (ASM) [ID 1187723.1]ASTASM
- Oracle identifiers :Database NameOracleIDEDatabase
- Database and/or Instance Performance Issues in RAC Environment_1373500.1DatabaseORM