程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL SERVER中的log block校驗

SQL SERVER中的log block校驗

編輯:關於SqlServer

從SQL2005開始,checksum校驗被增加為頁面校驗的一個選項,最廣為人知的兩個checksum選項就是備份時候的 checksum選項和頁面校驗checksum選項

另外一個比較少人知道的選項就是log block checksum

什麼是log block?

Log Block在宋沄劍寫的文章裡已經介紹的很清楚了

Log Block是日志寫入持久化存儲的最小單位,Log Block的大小從512字節到60K不等,這取決於事務的大小,

那些在內存還未被寫入持久化存儲的Log Block也就是所謂的In-Flight日志。以下兩個因素決定Log Block的大小:

事務提交或回滾 Log Block滿60K會強制Flush到持久化存儲,以保證WAL     因此當一個事務很大時(比 如說大面積update),

每60K就會成為一個Log Block寫入持久化存儲。而對於很多小事務,提交或回滾就會成為一個Block寫入持久化存儲 ,因此根據事務的大小,

LOG Block的大小也會不同。

大家知道page checksum就是校驗寫入磁盤的頁面,而log block checksum其實就是校驗寫入磁盤的log block

因為當log block寫入磁盤的時候也有可能損壞的,所以也需要校驗,本人覺得log block checksum校驗的重要性不 亞於頁面校驗

因為SQLSERVER靠日志來保證事務一致性,如果日志損壞了,還如何靠這些日志進行redo,undo log??

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved