天天看點

SQL Server誤區30日談-Day16-資料的損壞和修複

   本系列文章是我在sqlskill.com的PAUL的部落格看到的,很多誤區都比較具有典型性和代表性,原文來自T-SQL Tuesday #11: Misconceptions about.... EVERYTHING!!,經過我們團隊的翻譯和整理釋出在AgileSharp上。希望對大家有所幫助。

誤區 #16:多個關于資料的損壞和修複誤區

坊間流傳的很多版本都不正确

    我已經聽過很多關于資料修複可以做什麼、不可以做什麼、什麼會導緻資料損壞以及損壞是否可以自行消失。其實我已經針對這類問題寫過多篇博文,是以本篇博文可以作為“流言終結者”來做一個總結,希望你能有收獲。

    首先,對于資料修複可以做什麼,不可以做什麼,我已經寫過一篇博文Misconceptions around database repair涵蓋了13個誤區—從不用DBCC CHECKDB是否能修複錯誤(當然不能)到REPAIR_ALLOW_DATA_LOSS是否會引起資料丢失(這個名字的确很讓人迷惑)。

    其次,很多人抱怨說DBCC CHECKDB第一次運作時顯示的錯誤在第二次運作時會自行消失。這很好解釋:第一次由DBCC CHECKDB檢測出的錯誤頁已經不屬于頁配置設定集了,是以在第二次運作DBCC時就顯示不出來了。我有一篇博文對此進行了詳細的解釋:Misconceptions around corruptions: can they disappear?。

    還有一個傳的很廣泛的流言是,運作時間長的操作(比如索引重建,大容量資料插入,資料庫或檔案的收縮)會導緻頁損壞。其實不然,除非SQL Server存在BUG的情況下(非常罕見)。沒有任何T-SQL語句會導緻資料出錯。我幾年前寫過一篇文章對此進行了詳細的解釋:Search Engine Q&A #26: Myths around causing corruption。

    希望這篇文章對澄清這個概念有幫助

分類: SQL Server DBA誤區

本文轉自CareySon部落格園部落格,原文連結http://www.cnblogs.com/CareySon/archive/2012/12/24/2831218.html如需轉載請自行聯系原作者