數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境:
一臺Dell PowerEdge某型號存儲,數(shù)塊SAS硬盤分別組建raid1和raid5兩組磁盤陣列。其中2塊磁盤組建的RAID1,用于安裝操作系統(tǒng);其余幾塊磁盤組建raid5,用于存放數(shù)據(jù)。
上層安裝的windows服務(wù)器,部署有sql server數(shù)據(jù)庫,sql server數(shù)據(jù)庫存放在C盤分區(qū)。
數(shù)據(jù)庫故障&分析:
管理員發(fā)現(xiàn)存放sql server數(shù)據(jù)庫的C盤剩余空間不足,于是將數(shù)據(jù)庫路徑指向D盤,在D盤生成了一個.ndf文件。
大約半個月之后,數(shù)據(jù)庫出現(xiàn)故障,無法連接和附加查詢。
由于數(shù)據(jù)庫文件所在磁盤的容量不足,數(shù)據(jù)庫無法正常運行,出現(xiàn)邏輯錯誤。
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)過程:
1、將存儲設(shè)備中所有磁盤以只讀方式進行全盤鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進行,避免對原始數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析存儲中RAID1和RAID5的結(jié)構(gòu),獲取RAID相關(guān)信息,利用這些信息虛擬重組RAID1和RAID5。
3、由于管理員在發(fā)現(xiàn)數(shù)據(jù)庫出現(xiàn)故障之后進行過多次數(shù)據(jù)庫恢復(fù)操作。每次恢復(fù)操作都是在原環(huán)境下進行的,導(dǎo)致原始的數(shù)據(jù)庫文件被更改覆蓋,磁盤空間被多次復(fù)寫,所以無法使用嘗試恢復(fù)之后的數(shù)據(jù)庫文件進行修復(fù)。所幸的是,經(jīng)過溝通得知在數(shù)據(jù)庫發(fā)生故障的時候,對原始數(shù)據(jù)庫文件進行過備份。
4、從虛擬重組出來的RAID5的空間中將管理員備份的數(shù)據(jù)庫文件拷貝出來,嘗試在數(shù)據(jù)庫中附加,附加失敗,錯誤提示如下:
北亞企安數(shù)據(jù)恢復(fù)——sql server數(shù)據(jù)恢復(fù)
錯誤提示主數(shù)據(jù)庫文件和次級數(shù)據(jù)庫文件不匹配。
5、查看.ndf文件底層,發(fā)現(xiàn)該文件中幾乎沒有數(shù)據(jù)。嘗試取消.mdf文件和.ndf文件之間的關(guān)聯(lián)并只用.mdf文件進行附加,依然報錯但錯誤提示發(fā)生變化。錯誤提示如下:
北亞企安數(shù)據(jù)恢復(fù)——sql server數(shù)據(jù)恢復(fù)
錯誤提示日志文件(.ldf)和數(shù)據(jù)庫文件(.mdf)不匹配。
6、嘗試對數(shù)據(jù)庫進行無數(shù)據(jù)庫附加,附加成功。但是發(fā)現(xiàn)數(shù)據(jù)庫系統(tǒng)表損壞,無法正常使用。
北亞企安數(shù)據(jù)恢復(fù)——sql server數(shù)據(jù)恢復(fù)
7、嘗試修復(fù)數(shù)據(jù)庫的系統(tǒng)表,但系統(tǒng)表損壞過于嚴(yán)重,無法修復(fù)。
8、北亞企安數(shù)據(jù)恢復(fù)工程師編寫程序解析&提取數(shù)據(jù)庫文件中的數(shù)據(jù)庫記錄。
9、根據(jù)數(shù)據(jù)庫備份獲取數(shù)據(jù)庫的表結(jié)構(gòu),重構(gòu)表結(jié)構(gòu)并將提取出的數(shù)據(jù)庫記錄導(dǎo)入到新的表中。
數(shù)據(jù)驗證:
由用戶方對提取出的數(shù)據(jù)庫記錄進行驗證,經(jīng)過反復(fù)驗證,確認(rèn)數(shù)據(jù)完整有效,本次數(shù)據(jù)恢復(fù)工作完成。
Tips:
部署數(shù)據(jù)庫時要合理分配數(shù)據(jù)庫文件所在磁盤的空間,及時清理垃圾數(shù)據(jù),保證數(shù)據(jù)庫的正常、安全運行。
審核編輯:湯梓紅
-
SQL
+關(guān)注
關(guān)注
1文章
783瀏覽量
45020 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
646瀏覽量
18104 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3917瀏覽量
66100
發(fā)布評論請先 登錄
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?

oracle數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)庫誤執(zhí)行錯誤truncate命令如何恢復(fù)數(shù)據(jù)?

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫文件拷貝后服務(wù)無法啟動的數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫提示“錯誤 823”的數(shù)據(jù)恢復(fù)案例

Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫最簡單、最準(zhǔn)確的方法
SqlServer數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

Sybase數(shù)據(jù)恢復(fù)—Sybase數(shù)據(jù)庫無法啟動怎么恢復(fù)數(shù)據(jù)?

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Oracle ASM實例無法掛載的數(shù)據(jù)恢復(fù)案例

Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫啟庫報錯的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫底層File Record被截斷為0的數(shù)據(jù)恢復(fù)案例

評論