天天看點

SQL Server誤區30日談-Day21-資料損壞可以通過重新開機SQL Server來修複

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

誤區 #21:資料庫損壞可以通過重新開機SQL Server或是Windows,或是附加和分離資料庫解決

錯誤

    SQL Server中沒有任何一項操作可以修複資料損壞。損壞的頁當然需要通過某種機制進行修複或是恢複-但絕不是通過重新開機動SQL Server,Windows亦或是分離附加資料庫。

    而實際上,如果你的資料庫的損壞程度無法進行Crash Recovery的話(質疑狀态),那麼分離附加資料庫将會是你做的最糟糕的決定。這個原理是由于附加資料庫中包含Crash Recovery步驟,如果Crash Recovery失敗的話,那麼附加也會失敗。是以下面的技巧才是你所需要的:TechEd Demo: Creating, detaching, re-attaching, and fixing a suspect database。記住,永遠不要分離損壞的資料庫。

    下面這類錯誤才是有可能通過重新開機解決:

    如果在記憶體中的頁損壞,但在磁盤上的頁完好時,重新開機能夠解決損壞問題

    如果損壞發生了,但是重新開機過程中的某個步驟導緻這個頁不再被配置設定,則貌似損壞通過重新開機解決了,這個問題我之前已經有一篇博文進行闡述了:Misconceptions around corruptions: can they disappear?

    如果IO子系統也重新開機,之前SQL Server對IO的需求被IO子系統“卡”住,則重新開機貌似能解決問題,但實際上這并不是修複損壞,而隻是讓出問題的IO子系統恢複。我隻碰見過三四次這類情況。

    不管怎麼說,你起碼要做到有對應的備份政策或是容易系統進行恢複和故障轉移。重新開機可不是一個解決方案,這隻會浪費時間。

分類: SQL Server DBA誤區

本文轉自CareySon部落格園部落格,原文連結:http://www.cnblogs.com/CareySon/archive/2013/01/16/2863116.html,如需轉載請自行聯系原作者