db_block_checksum 引數解析

pingley發表於2012-03-12
db_block_checksum 引數解析
你可以使用DB_BLOCK_CHECKSUM引數產生來生成redo log file block 的校驗值。資料庫會為每一個
block 生成一個校驗值,當block 寫入磁碟中的時候,校驗資訊會儲存在磁碟block中的頭部。oracle
在檢查redo log block 是否損壞的時候將用到block 的校驗值。當例項恢復從歸檔日誌中讀取redo
data 的時候會對block 進行校驗,同樣的歸檔程式讀取日誌檔案中的資訊的時候也會對redo block
進行校驗。當歸檔的時候發現有塊損壞,系統會嘗試從同組的其他日誌檔案成員中讀取該塊。如果
在該組中的所有的日誌檔案中的該塊都已經損壞,則歸檔不能夠繼續。另外當啟用db_block_checksum 
的時候會輕微的影響資料庫系統的效能。此時你需要考慮是資料庫的效能重要還是block的完整性重要。
該引數的值可以動態的透過alter system 語句更改。預設值是 typical(ture).
SQL> show parameter db_block_checksum;
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
db_block_checksum                    string      TYPICAL
另外如果啟用了該特性DBWn 寫data buffer 中的資料到磁碟塊中的時候也會生成校驗值。從磁碟中
讀資料塊的時候會進行校驗。開啟db_block_checksum 應該設定該引數的值為typical(ture)或者 full.
但是如果該引數的值是full。DBWn 在刪除,更新語句執行以後會對有改動的資料庫進行重新生成校驗
值。LGWR 會對前臺程式產生的校驗值進行校驗再進行寫入。在full 模式下如果出現了損壞的資料庫
將不會被寫入磁碟。從oracle 11g 開始大部分的 redo block 校驗值是由前臺程式產生的。
如果該引數的值設定為off(flase),DBWn 只會為system 表空間的資料生成校驗值。日誌檔案資料庫將會不
生成校驗值了。
在typical(ture) 模式下將會產生額外開銷(1%~2%)。
在full 模式下將會產生的額外開銷(4%~5%)。
oracle 推薦使用typical (ture)模式。
ture,false 是為了向後相容而保留的引數。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-718304/,如需轉載,請註明出處,否則將追究法律責任。

相關文章