從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??