首頁  >  文章  >  MDF檔案在SQL Server資料庫中如何完全修復

MDF檔案在SQL Server資料庫中如何完全修復

-
-原創
2018-03-06 13:51:364695瀏覽

眾所周知,由於資料庫檔案儲存了大量重要的信息,因此對於所有使用者來說都是至關重要的。讓我們一起來了解如何透過手動和專業的方法,修復那些被損壞的SQL資料庫檔案。

如今微軟的SQL Server可謂是最常用的關聯式資料庫之一了。鑑於其先進的內部結構和高可靠性,大多數組織都選用SQL Server資料庫來儲存所有關鍵業務的資料。但有時候,一些諸如病毒感染、作業系統故障、檔案系統損壞之類的狀況會使得SQL資料庫受到損壞,以至於儲存在其中的所有資料都變得無法存取。然而,在真實的場景中,我們在損壞的SQL Server中修復各種.mdf文件,卻並非是一件容易的事。

一般使用者可以透過手動的方法,來逐步修復SQL資料庫中損壞的MDF文件,但該方法並不可靠,因為它無法保證資料能夠完全恢復。不過,也有類似SysTools SQL Recovery這樣的第三方工具,聲稱可以完美的方式修復.mdf檔案。

因此在本文中,我們將和您討論修復受損SQL資料庫的最佳解決方法。不過在開始之前,先來了解SQL資料庫受損的背後原因。

SQL資料庫受損的背後原因

SQL資料庫受損的背後原因有許多種。眾所周知,SQL資料庫的各個MDF文件其實是一些主要的資料庫文件,它們儲存著所有使用者的數據,因此任何MDF文件的損壞都可能會導致整個資料庫的崩潰。可見,我們需要先來了解MDF檔案受損背後的所有可能原因:

 .MDF檔案所在儲存媒體的損壞。

 .如果使用者將SQL資料庫儲存在一個壓縮的資料夾中,那麼MDF檔案就可能因此而被損壞。

 .在某個SQL Server帳號下,所進行的任何修改或變更。

 .某個使用者可能會對資料進行錯誤地刪除。

 .由於檔案頭的損壞,所導致的MDF檔案受損。

 .磁碟機受損。

 .SQL資料庫正在寫入使用時發生了網路故障,則可能會導致MDF檔案的損壞。

 .其他可能導致MDF檔案損壞的原因還包括:病毒攻擊、硬碟故障、系統異常關機和突然斷電等。

因此,如果MDF檔案被損壞,那麼SQL資料庫就會變得無法存取。另外,如果使用者試圖去存取已損壞的資料庫,則可能會看到一些錯誤提示訊息。下面我們列出了一些最常見的錯誤訊息:

 .MDF檔案所在儲存媒體的損壞。

 .如果使用者將SQL資料庫儲存在一個壓縮的資料夾中,那麼MDF檔案就可能因此而被損壞。

 .元資料的損壞錯誤。

 .使用者可能會對資料進行錯誤地刪除。

 .SQL Server中的Msg 823 / Msg 824 / Msg 825(讀取重試)錯誤。

除此之外,使用者還可能在存取受損的SQL資料庫時,遇到其他類型的錯誤提示。可見,資料庫管理員應立即採取措施,以防止任何類型的資料遺失。

如何手動修復MDF檔案

我們可以用幾種手動的方法來修復受損的SQL資料庫,但這些手動解決方法是無法保證資料庫能完全恢復的。

使用者可以使用SQL Server的NDF檔案(一些日誌檔案)來進行復原。但是在大多數損壞的案例中,單憑日誌檔案是不足以恢復資料庫的。因為有時候在一些嚴重損壞的情況下,其對應的備份檔案也同樣遭到了破壞。

另一種可能修復和復原受損SQL資料庫的方式是使用資料庫控制台指令,例如:DBCC CHECKDB。此指令對於修復SQL Server資料庫中的輕度損壞問題是非常有效的。

用DBCC CHECKDB來修復受損MDF檔案的步驟

首先,您需要在受損的SQL資料庫上執行DBCC CHECKDB,請執行以下的指令:

# 1.DBCC CHECKDB (Name_of _corrupt _database) 

注意:您也可以為DBCC CHECKDB定義諸如no_infomsgs和infomsgs的選項參數。

在此之後,您就需要開始檢查索引ID了。

情況1:如果索引ID>1,則立刻丟棄它、並重新建立。

情況2:如果索引ID為0或1,則使用適當的修復選項,如:repair_rebuild、repair_fast或repair_allow_data_loss,來再次執行DBCC CHECKDB。

  1. DBCC CHECK (name_of_corrupt_database, repair_fast)  

  2. DBCC CHECK (name_of_corrupt_database DBCC CHECK (name_of_corrupt_database, repair_allow_data_loss) 

至此為確保修復了所有損壞,請再次執行DBCC CHECKDB。如果在name_of_your_corrupt_database中顯示為0個分配錯誤和0個一致性錯誤,則大功告成。

如果手動方法失敗了呢?

由於其自身的局限性,手動解決方法並不總是萬無一失的。例如,MDF檔案被嚴重損壞時,手動修復往往會以失敗而告終。而且,手動解決方法需要使用者有較強的技術能力。因此,我們建議使用一些可靠的第三方軟體,來修復受損的SQL資料庫。 SQL資料庫復原程式(SQL Database Recovery Program)是一款最佳的實用程序,它可以修復MDF檔案中任何類型的損壞問題。

SQL復原工具能夠同時修復MDF和NDF兩種受損的SQL資料庫檔案。它是一款無風險的軟體,可恢復儲存在各種表格、規則、觸發器、以及函數中的所有資料項目。除此之外,您只需點擊幾次該軟體,即可完成資料庫的修復,而絕不浪費任何時間。

修復受損MDF檔案的特定步驟

下載並在本機上執行SQL復原程式。

MDF檔案在SQL Server資料庫中如何完全修復

 SysTools SQL復原工具

在此之後,您可以透過定位,選擇並開啟受損的SQL資料庫檔案(.mdf檔案)。

MDF檔案在SQL Server資料庫中如何完全修復

 選擇損壞的MDF檔案

選擇掃描模式,然後按一下確定。

MDF檔案在SQL Server資料庫中如何完全修復

 掃描模式

該工具將會為您提供一個儲存在受損MDF檔案中的資料項目的預覽。

MDF檔案在SQL Server資料庫中如何完全修復

 查看MDF檔案

點選匯出,以儲存要還原的資料庫。

MDF檔案在SQL Server資料庫中如何完全修復

 匯出MDF資料庫

結論

#由於資料庫檔案儲存了大量重要的信息,因此對於所有使用者來說都是至關重要的。然而SQL資料庫中任何類型的損壞問題,都可能會對使用者造成巨大的麻煩。為了因應和克服各種可能出現的問題,我們透過上述的討論,為您提供了運用手動和專業的解決方法,來修復那些受損的SQL資料庫檔案。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn