- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網(wǎng)數(shù)碼
在我們知道可能造成數(shù)據(jù)庫的損壞原因之后,接下來我們來看SQL Server是如何監(jiān)測數(shù)據(jù)庫頁損壞的。
在SQL Server的數(shù)據(jù)庫級別,可以設置頁保護類型,一共有三個選項:None,CheckSum,Torn_Page_Detection,如圖1所示:
關于這三種選項,首先,請無視None,請不要在任何場景下選擇該選項,該選項意味著SQL Server不對頁進行保護。
其次是TORN_PAGE_DETECTION,在SQL Server中,數(shù)據(jù)的最小單位是頁,每一頁是8K,但是對應磁盤上往往是16個512字節(jié)的扇區(qū),如果一個頁在寫入持久化存儲的過程中,
只寫了一半的頁,這就是所謂的TORN_PAGE_DETECTION,SQL Server通過每個扇區(qū)提512?節(jié)中前2位作為元數(shù)據(jù),總共16個扇區(qū)32位4字節(jié)的元數(shù)據(jù)(頁頭中標識為:m_tornBits),
通過該元數(shù)據(jù)來檢測是否存在部分寫的TORN_PAGE,但該類型的頁驗證無法檢測出頁中的寫入錯誤,因此在SQL Server 2005及以上版本,盡量選擇CheckSum。
在SQL Server 2005及以上版本,引入了CheckSum,CheckSum可以理解為校驗和,當數(shù)據(jù)頁被寫入持久化存儲時,會根據(jù)頁的值計算出一個4字節(jié)的CheckSum存于頁頭(頁頭中標識同為:m_tornBits),
和數(shù)據(jù)在同一頁中一起保存在數(shù)據(jù)庫中。當數(shù)據(jù)從IO子系統(tǒng)被讀取到內(nèi)存中時,SQL Server會根據(jù)頁內(nèi)的值再次計算CheckSum,用該重新計算的
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP