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