微軟的SQL Server 數據庫最常用的有兩種類型的文件:
1、主要數據文件,文件後綴一般是.MDF;
2、事務日志文件,文件後綴一般是.LDF。
用戶數據表、視圖、存儲過程等等數據,都是存放在MDF文件裡,LDF文件是存放MS SQL Server操作過程中的日志記錄。
MDF文件必讀附加到MS SQL Server數據庫環境後,才能正常讀取其中的數據。當由於某種原因數據庫附加不上,MDF數據庫文件的內容就沒辦法讀取,數據庫修復的方法有:
1、 使用MS SQL Server環境進行修復,先以修復模式掛載數據庫,然後以單用戶模式對數據庫進行修復,運氣好的話,數據庫就能修復成功。
2、 用第三方工具直接讀取MDF數據文件,把數據表、視圖、存儲過程等提取出來,然後還原到新建的數據庫中。
D-Recovey For MS SQL Server達思sql數據庫修復軟件就是能直接讀取MDF數據文件的工具,即便用上述第一種方法沒有恢復成功的情況下,D-Recovey For MS SQL Server有時候也能讀取出MDF數據文件中的數據。下面我們來介紹D-Recovey For MS SQL Server的一些數據恢復功能。
我們先來看一下數據庫損壞的幾種情況:
1、 由於斷電等原因導致數據庫質疑,這是一種較為常見的MS SQL Server數據庫損壞的情況,這種情況在上述第一種修復方法往往能修復好,但也有修不好的可能。
圖一:sql數據庫置疑錯誤很常見
2、 數據庫附加錯誤,最常見的如下圖:
圖二:sql數據庫823錯誤是主要的數據庫附加錯誤
3、 數據表查詢錯誤,如下圖:
圖三:數據表查詢報錯也很常見
數據庫報823錯誤通常是數據頁面校驗沒有通過,一般是由於壞道、突然斷電、數據覆蓋等原因引起的,有些情況下數據庫能附加,但是查詢某個表的時候報823錯誤,用MS SQL Server數據庫環境也修復不好。D-Recovey For MS SQL Server對於823錯誤處理效果不錯。
D-Recovey For MS SQL Server具備如下恢復功能:
1、能恢復由於斷電及別的原因引起的數據庫狀態變成質疑而損壞的MDF文件
2、能恢復磁盤壞道及別的原因引起的數據庫無法正常附加而損壞的MDF文件
3、能恢復數據庫狀態正常而某些數據表查詢出錯造成的數據丟失情況的數據
4、能恢復通過MDF文件碎片組合(手工提取)而成的MDF文件中的數據
圖四:達思sql數據庫修復軟件盒裝版
D-Recovey For MS SQL Server軟件界面如下
圖五:達思sql數據庫修復軟件界面
D-Recovey For MS SQL Server的界面設計按照MS SQL Server企業管理器使用習慣來進行,左邊窗口顯示的是數數據表、視圖、存儲過程、用戶自定義函數、用戶自定義數據類型,點擊數據表,就能看到所有數據表名稱,數據表“+”號展開後,可以看到數據表字段信息等,點擊某個表,右邊窗口就顯示該數據表的數據記錄信息,如果某個數據表記錄比較多,可以通過下一頁、上一頁進行翻頁顯示。
細心觀察的朋友會發現,每一頁顯示的記錄條數可能不一樣,這是程序設計的時候,按照一定的數據頁面來顯示的,比如沒個顯示頁讀取64個數據頁面(data page),在MDF文件中,每個data page的數據記錄數量不一定相等,所以顯示出來的記錄數量就會有差異。
D-Recovey For MS SQL Server數據庫恢復步驟:
1、打開MDF文件,選擇數據庫版本
圖六:選擇sql數據庫版本
2、打開完以後,左邊顯示數據表、視圖、存儲過程、用戶自定義函數、用戶自定義數據類型,點擊“+”可展開,點擊左邊某個表,右邊列出表記錄。
圖七:輕松展開損壞的sql數據庫文件
把數據恢復成腳本文件
數據恢復功能中的導出所有表結構、導出選中表結構是把數據庫的表結構導出來,保存成.sql文件,這是一個包含sql語句格式的文本文件,用戶可以在MS SQL Server中運行這些sql語句文件,就能創建出數據表。
導出所有表數據和導出選中表數據是把表數據導出來,保存成sql語句文件,用戶可以把這些sql語句文件在MS SQL Server查詢分析器中運行,把相應表中的數據恢復到MS SQL Server中。值得注意的是,數據庫全部保存成sql文件以後,程序生成一個commit.bat批處理文件,運行這個commit.bat批處理文件,填寫數據要導入的目標數據庫用戶名和密碼以及數據庫服務器IP地址和目標數據庫名稱,然後批處理文件會自動把所有sql語句文件導入到目標數據庫中。
把數據恢復到新的數據庫中
數據庫恢復中最實用的功能就是把看到的數據表中的數據直接導入MS SQL Server新建的數據庫中。加入我們要恢復一個a.mdf文件,我們要把a.mdf文件中的所有數據恢復到數據庫服務器127.0.0.1上的DSTtest數據庫中,就要點擊D-Recovey For MS SQL Server的“把所有表導入數據庫”這個按鈕,就彈出如下對話框,我們把數據庫服務器IP地址、數據庫名稱、連接數據庫的用戶名和密碼,然後點擊確定,a.mdf文件中的數據就自動導入到DSTtest中。
圖八:達思sql數據庫修復軟件可以吧數據恢復到數據庫中
D-Recovey For MS SQL Server還具備檢測MDF數據文件數據頁面是否正確的功能。
點擊“檢查數據庫文件”按鈕,出來如下對話框,我們先擇一個mdf文件,開始檢測,在檢測過程中,我們注意“null page”(即空數據頁)和“err page”(即錯誤數據頁)數量的變化,如果錯誤數據頁特別多,那這個mdf文件損壞就比較嚴重。
圖九:達思sql數據庫修復軟件具有數據庫檢測功能
MS SQL Server數據庫另外一種常見的恢復方法是通過提取MDF數據頁面,然後整合拼接成一個MDF數據文件,通過這種方式恢復一般很少能附加到數據庫中,可以通過D-Recovey For MS SQL Server把正常的數據記錄提取出來。
總結:
1、D-Recovey For MS SQL Server總體設計思想是直接讀取MDF文件中正常的數據記錄,並把這些數據保存成sql語句或者直接導入一個新的數據庫中,它不是設計成直接修復原始MDF文件使MDF文件能正常附加到數據庫中。當數據庫管理員使用任何方法都不能把數據庫修復使它正常附加的情況下,D-Recovey For MS SQL Server就顯得格外有用。
2、數據能夠成功恢復的基礎是MDF文件關鍵系統表沒有被破壞,數據記錄內容確實存在於MDF文件之中,如果數據記錄內容被破壞被覆蓋,數據恢復將不能正確恢復原來的信息。