手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

發現數據庫損壞如何監控

2016-07-10 13:28:28 11517

在我們知道可能造成數據庫的損壞原因之后,接下來我們來看SQL Server是如何監測數據庫頁損壞的。

SQL Server的數據庫級別,可以設置頁保護類型,一共有三個選項:NoneCheckSumTorn_Page_Detection,如圖1所示:

blob.png

關于這三種選項,首先,請無視None,請不要在任何場景下選擇該選項,該選項意味著SQL Server不對頁進行保護。

其次是TORN_PAGE_DETECTION,在SQL Server中,數據的最小單位是頁,每一頁是8K,但是對應磁盤上往往是16512字節的扇區,如果一個頁在寫入持久化存儲的過程中,

只寫了一半的頁,這就是所謂的TORN_PAGE_DETECTIONSQL Server通過每個扇區提512?節中前2位作為元數據,總共16個扇區324字節的元數據(頁頭中標識為:m_tornBits),

通過該元數據來檢測是否存在部分寫的TORN_PAGE,但該類型的頁驗證無法檢測出頁中的寫入錯誤,因此在SQL Server 2005及以上版本,盡量選擇CheckSum

SQL Server 2005及以上版本,引入了CheckSumCheckSum可以理解為校驗和,當數據頁被寫入持久化存儲時,會根據頁的值計算出一個4字節的CheckSum存于頁頭(頁頭中標識同為:m_tornBits),

和數據在同一頁中一起保存在數據庫中。當數據從IO子系統被讀取到內存中時,SQL Server會根據頁內的值再次計算CheckSum,用該重新計算的


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: