WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606
全部博文(599)
分类: Oracle
2013-02-28 14:06:45
Physical and Logical Block Corruptions. All you wanted to know about it. [ID 840978.1]
Oracle classifies the Data File Block corruptions as Physical and Logical. This is also referred as intra block corruptions.
This
kind of block corruptions are normally reported by Oracle with error ORA-1578
and the detailed corruption description is printed in the alert log.
Corruption Examples are:
Detailed Corruption Description:
A Fractured block means that the block is incomplete. Information from the block header does not match the block tail.
Block
Checksums are used to identify if the block was changed by something external to
Oracle and after the block was last written by Oracle.
Checksum is calculated
by DBWR or direct loader before writing the block to disk and stored in the
block header. Every time that the block is read and if db_block_checksum is
different than false, Oracle calculates a checksum and compares it to the one
stored in the block header. Reference [Note 30706.1]
Example
of a corrupt block due to invalid checksum:
A
value different than zero (0x0) in "computed block checksum" means that the
checksum
differs and the result of this comparison is printed.
This is when Oracle detected that the content of the block being read belongs to a different block and the checksum is valid:
This
is when block contains a valid checksum and the structure below the beginning of
the block is corrupt (Block content is corrupt). It may cause different ORA-600
errors.
The detailed corruption
description for Logical Corruptions are not normally printed in the alert.log.
DBVerify will report what is logically corrupted in the block.
Corruption
Examples are:
When db_block_checking is enabled, it may produce the internal errors ORA-600 [kddummy_blkchk] or ORA-600 [kdBlkCheckError].
If
db_block_checking is enabled and the block is already logically corrupt on disk,
the next block update will mark the block as Soft Corrupt and future reads of
this block will produce the error ORA-1578. In that case DBVerify reports this
corruption with error "DBV-200: Block, dba