很多數據恢復工程師包括一些數據恢復技術愛好者經常會問同樣一個問題:“數據一旦被覆蓋了,還能不能恢復呀?這種問題困惑很多人,也困惑很多年,到現在也沒有人能夠證實!下面,就由我們鄭州北大青鳥學校的IT專家來給大家分析下:如何恢復MSSQL數據庫!
1.我們以一個實際的數據恢復案例來講解
實際環境:在Windows 2003 Server操作系統下,采用NTFS分區類型,裝了一個MS SQL Server 2005數據庫,一共有10個數據庫在用,其中有一個數據名稱是xiangmu01,對應兩個物理文件xiangmu01.mdf和xiangmu01.ldf,這個數據庫使用有兩年多時間,xiangmu01.mdf大小有18GB,xiangmu01.ldf大小有30GB,存放路徑為d:\database\.
數據丟失過程:某個粗心的工程師在使用服務器時,從MS SQL Server企業管理器中創建了一個新的數據庫,名稱為xiangmu001,創建時使用默認存儲路徑,默認路徑把數據庫xiangmu001的物理文件創建在了C盤的MS SQL Server安裝路徑上,他及時發現,想把數據xiangmu001刪除了,重新創建,把物理文件存放到d:\database\下,災難就在這一步降臨,錯誤的把xiangmu01數據庫刪除了,然后再創建xiangmu001數據庫,把物理文件路徑更改成d:\database\,企業管理器出現提示“該數據庫名稱已經存在”,停下來檢查,腦袋嗡的一聲“刪錯了數據庫!”。
這個時候工程師想的第一件事就是找備份來還原!還原的步驟是,先創建xiangmu01數據庫,物理文件名稱和路徑跟原來數據庫一樣,于是在d:\database\下由于刪除xiangmu01數據庫丟失掉的兩個物理文件xiangmu01.mdf和xiangmu01.ldf,又出現在d:\database\目錄下,按照數據恢復行業詞匯就是“同名覆蓋”。創建好了新的xiangmu01數據庫,就用xiangmu01.bak來還原,禍不單行,這個xiangmu01.bak文件是壞的,還原不了。
2.數據恢復是否有可能?
就這個案例而言,數據恢復成功的可能性到底有沒有?根據不同的數據恢復公司,接到這樣的數據恢復案例,會有如下3種處理情況:(1)直接認為要恢復的數據發生了“同名覆蓋”,起碼數據庫文件頭部被破壞,不可恢復!(2)會按照數據庫mdf文件類型對整個分區進行掃描,提取出若干個mdf文件,挨個去驗證,看看有沒有好的.(3)嘗試按照MS SQL Server數據庫頁面碎片對整個分區進行掃描,因為數據庫比較多,數據庫頁面碎片個數非常多,如果再加上對NTFS文件系統結構的熟悉了解,在掃描數據庫頁面碎片的時候,排除掉當前分區中正常存在的mdf文件的頁面信息,單獨提取硬盤分區NTFS文件系統中正常情況下不存放數據區域的數據庫頁面碎片,就是丟失掉的或者以前曾經存放過的mdf文件內容。
經過了以上北大青鳥鄭州翔天信鴿IT培訓學校IT專家的介紹,我們得知,被覆蓋或者勿刪的數據庫是可以恢復的,即使這樣,我們以后還要養成經常備份MSSQL數據庫的習慣,以免出現意想不到的后果。
本文源自: http://m.pakitalkshows.com/xsjl/ 若有轉載請注明出處!