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