5 forms of Oracle Corruption

shiyihai發表於2007-11-04

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
Block corruption
Dictionary corruption
Undo corruption
Redo corruption

[@more@]

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章