我們的數據恢復客戶經常要求我們定位他們的數據庫,而Microsoft SQL Server數據庫是最常請求的文件之一。在許多情況下,SQL Server數據庫是驅動器或服務器上唯一重要的事情 - 客戶端不需要任何其他東西,并且他們要求我們的工程師做任何事情,盡一切可能使這些關鍵文件重新啟動并運行。因此,我們開發了一些用于SQL Server恢復的專用方法,包括關鍵軟件工具,我們一直在尋找改進流程的方法。
規劃Microsoft SQL Server數據恢復時需要考慮幾個因素。SQL Server可能對任何問題非常敏感,例如壞扇區,錯誤對齊或過時數據。數據庫可能包含大文件,這會增加與恢復相關的風險 - 恢復數據中的任何小問題都將影響整個數據庫。即使有100%的干凈恢復,如果數據庫沒有正確關閉,SQL Server可能無法解釋恢復的數據(此問題已在新軟件的最新版本中稍微減少)。
無法附加的數據庫 - 或者在訪問數據時報告大量錯誤的數據庫 - 對我們的客戶來說基本上是無用的。我們的無數據,無收費政策涵蓋了這種情況,因此我們采取必要的步驟來提供我們的客戶可以重新連接并干凈利用的恢復的數據庫文件。目標是讓他們輕松地將數據重新集成到他們的系統中。但是,SQL Server與各種前端應用程序一起運行,因此我們無法提供完全重新集成的支持。
在我們的實驗室中,由于軟件的廣泛普及,我們使用了數百種SQL數據庫配置。我們經常發現我們的客戶在RAID系統上運行SQL Server,但在標準的消費者計算機上找到該軟件的情況并不少見。我們實驗室處理的SQL服務器的常見版本包括:
在下面的段落中,我將進一步深入了解更困難案例的流程,但首先我將嘗試提供與SQL Server相關的實際數據庫文件的一些背景信息。
與SQL Server關聯的關鍵文件類型是MDF和LDF文件(很少是NDF)。兩者都是運行數據庫所必需的。MDF文件是主數據庫文件,LDF是日志文件。LDF記錄過去發生的事務,這些事務允許回滾操作或從上次備份后的問題中恢復,這有助于保證數據的一致性。通常MDF文件是較大的文件,但我們已經看到有時LDF較大(這取決于配置和使用情況)。數據庫備份文件通常是BAK擴展名。
在大多數情況下,恢復的SQL Server數據庫文件測試完全正常,但如果恢復特別困難或者對解決方案造成重大損害,我們通常會看到一些問題出現。這些可以以不同方式表現出來。查詢數據時,數據庫可能無法附加或顯示錯誤。在某些情況下,我們只是在原始文件中找到不良數據,此時我們需要更深入地了解哪些是出錯的。
根據具體情況,我們可能需要返回到物理數據恢復程序,以嘗試更好地克隆原始媒體。如果SQL Server數據庫文件位于RAID上,我們必須調整RAID恢復以從所有驅動器成員中獲得最干凈的提取。這就是我們的內部軟件工具發揮作用的地方,因為這些工具允許我們在SQL Server MDF和LDF文件中填寫正確數據的空白,無論何時可以在別處找到(不是在原始恢復文件中) 。
在RAID的情況下,其中多個驅動器在不同點處發生故障,這可能允許我們使用通常不期望的“陳舊”驅動器的小部分來實現此目的。在其他情況下,由于我們經常能夠在數據中找到不同版本的類似數據庫文件,我們可以將我們的自動化工具指向多個版本,并通過用以下方法替換壞扇區,將最佳結果與最新數據拼湊在一起。從另一個文件中丟失數據。我們將盡一切努力獲得最佳結果,有時這個過程可能需要數天(我們通過任何必要的方式縮短周轉時間,但數據恢復的質量始終是首要任務。)
對于處理損壞的SQL Server數據庫的IT專業人員,有許多商業工具被宣傳為專業SQL Server數據庫恢復服務的有效替代品。但是,我建議不要使用這些類型的實用程序,而是基于相當典型的恢復中經常出現的問題。基本軟件不足以獲得干凈的恢復,所有這些工具都需要訪問數據才能工作。這通常是一種安全風險。
除此之外,這些工具很少會返回正確附加并提供可用數據的數據庫。可以轉儲存儲過程和視圖(使用數據庫的軟件系統通常需要這些過程和視圖)。表行通常會以粗略的方式進行大幅削減,因為實用程序會執行創建正常運行的數據庫所需的操作,而無需真正查看數據。根本沒有邏輯決策能力,這將導致可用性問題。
當然,一些SQL Server數據庫修復工具將作為最后的手段,但它們最適合知識淵博的專業人士使用。功能強大的數據恢復服務將為您提供更好,更安全,更安全的結果。如果您正在考慮使用SQL Server數據進行數據恢復服務.