In Oracle databases, corruption in its broadest sense is incorrect information - information that Oracle did not expect to find. This condition can exist in memory, in data blocks, or in the data dictionary, giving rise to the five forms of corruption:
Memory (HEAP) corruption
HEAP corruption occurs when a piece of memory is overwritten and this can be caused by an Oracle Bug, an O/S overwrite, or by an application. The code that overwrites the memory usually does not fail because it has been successful in writing to memory. It is the code that is looking for the overwritten memory that fails later.
Block corruption occurs when a data block contains inconsistent information. Oracle data blocks have a number of internal checks to verify the consistency of the block, and when one of these checks fail, a corruption is detected. The corruption may be on disk, or may be trapped in memory and never written to disk. Block corruptions are mostly caused by O/S problems.
The data dictionary is a set of tables that Oracle uses to store metadata about the database. Referential integrity between the tables is maintained by the Oracle code, not by any constraints between the tables. If the integrity between the tables becomes inconsistent, this is known as data dictionary corruption. These can be caused by Oracle bugs or O/S problems as well.
Undo corruption is corruption in an undo segment, and this is usually caused by block corruptions in the undo tablespace.
Redo corruption is corruption in a redo online or archived log, usually caused by O/S problems.
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/38542/viewspace-980777/，如需转载，请注明出处，否则将追究法律责任。