Email: service@parnassusdata.com 7 x 24 online support!

Oracle ORA-8103

Oracle ORA-8103

 
Block type is Invalid or the block type found is not expected. I.e. Oracle is expecting data (type=6) but the block has a different type.
 
data_object_id in the block does not match with data_object_id in the dictionary.  
 
Possible Causes (analyze produces the same error):
 
If the block is ok (Not corrupt).  Possible lost write.  The block was not reformatted for the existent object.  A recovery may resolve this.  Common case is when 3rd party tools are used to copy the database while the db is open.  Bugs in these tools may copy old versions of blocks to the new database.
 
Inconsistency at extent level.  Same block used by 2 objects and they may overwrite each other. A recovery may not repair this as the corruption is in the extent information at tablespace level (Possible lost write too). Check dba_extents/dba_segments/dba_free_space to see if block is associated to more than one object or if block appears in dba_extents/dba_segments and dba_free_space at the same time.
An Oracle bug
Possible Causes (analyze does not produce the same error):
 
Could be the expected behavior where the object is being dropped/truncated while a select is running for example.  The select may produce the error.  Call stack will show the process trying to access the segment header (Functions ktecgetsh ktecgshx ). Diagnosability ER in bug 7441661
 
Could be a problem only in memory (buffer cache).  This case is normally an Oracle bug.
 
Note 268302.1 ORA-8103 Diagnostics and Solution