1. DB_BLOCK_CHECKSUM parameter description
Before Oracle 10.2.0.3:
DB_BLOCK_CHECKSUM has two options: TRUE and FALSE. The default value is TRUE.
In Oracle 10.2.0.3:
DB_BLOCK_CHECKSUM has three options: OFF | TYPICAL | FULL. The default value is TYPICAL.
In Oracle 11g:
DB_BLOCK_CHECKSUM has five options: OFF | FALSE | TYPICAL | TRUE | FULL, the default value is TYPICAL.
However, a new parameter DB_ULTRA_SAFE is added to Oracle 11g to manage the DB_BLOCK_CHECKSUM parameter. The DB_ULTRA_SAFE parameter is described in section 2.
For more information about the new Oracle 11G parameters, refer to the official website:
What's New in Oracle Database Reference?
Http://docs.oracle.com/cd/E11882_01/server.112/e25513/whatsnew.htm
Description of the DB_BLOCK_CHECKSUM parameter on the Oracle 11g Website:
DB_BLOCK_CHECKSUM determineswhether DBWn and the direct loader will calculate a checksum (anumber calculated from all the bytes stored in the block) and store it in thecache header of every data block when writing it to disk. checksums areverified when a block is read-only if this parameter is TYPICAL or FULLand the last write of the block stored a checksum.
The -- DB_BLOCK_CHECKSUM parameter determines whether the DBWn process and the direct path read process calculate the checksum for blocks, and stores the checksum in the cache header of each data block and writes it to the disk. When the data block is read, The checksum will be verified, provided that DB_BLOCK_CHECKSUM is set to TYPICAL or FULL, and there is checksum in the last write of the block.
In FULL mode, Oracle also verifies the checksum before a change application fromupdate/delete statements and recomputes it after the change is applied. inaddition, Oracle gives every log block a checksum before writing it to thecurrent log.
-- In FULL mode, Oracle will verify the checksum before the block is changed, the checksum will be calculated again after the DML update/insert/delete statement changes are applied to the block. In addition, Oracle calculates checksum for each redo block written to the current redo log file.
Starting withOracle Database 11g, most of the log block checksum is done by the generatingforeground processes, while the LGWR performs the rest of the work, for betterCPU and cache efficiency. prior to Oracle Database 11g, the LGWR solelyuncmed the log block checksum.
If thisparameter is set to OFF, DBWn calculates checksums only forthe SYSTEM tablespace, but not for user tablespaces. In addition, nolog checksum is already med when this parameter is set to OFF.
-- If this parameter is set to OFF, the DBWn process calculates checksum only for the objects in the system tablespace, but not for common tablespace.
Checksums allowOracle to detect failed uption caused by underlying disks, storage systems, or I/Osystems. if set to FULL, DB_BLOCK_CHECKSUM also catchesin-memory uptions and stops them from making it to the disk. turning onthis feature in TYPICAL mode causes only an additional 1% to 2% overhead. in the FULL mode it causes 4% to 5% overhead. oracle recommendsthat you set DB_BLOCK_CHECKSUM to TYPICAL.
-- Checksum enables Oracle to detect Bad blocks caused by underlying disks, storage subsystems, and IO subsystems. If it is set to FULL, DB_BLOCK_CHECKSUM will also capture memory crashes and avoid writing blocks with logical crashes to the disk. Setting DB_BLOCK_CHECKSUM to TYPICAL mode may cause 1%-2% Performance Loss. Setting it to FULL mode may cause 4%-5% performance loss. Oracle recommends that you set DB_BLOCK_CHECKSUM to TYPICAL.
For backwardcompatibility the use of TRUE (implying TYPICAL) and FALSE (implying OFF) values is preserved.