Setting the DB_BLOCK_CHECKSUM system initialization parameter to TRUE notifies DBWR to calculate a value based on the number of bytes in the block and store that value in the cache header of every data block when writing it to disk. This calculated number is called a checksum. Checksums are verified when the block is read and is used by Oracle to detect corruption caused by the various components of disk storage systems.
In Oracle 10G R2, administrators can set DB_BLOCK_CHECKSUM to FULL to notify Oracle to verify the checksum as it is being transferred from one memory construct to another (i.e. user session to buffer cache). This improves Oracle's capability of identifying block corruptions and is particularly useful when propagating blocks to standby databases.