碎片拼接技術恢復XenServer服務器SQL Server數據庫數據

​環境:​

  • Dell PowerEdge服務器;
  • XenServer虛擬化平臺;
  • 4塊希捷2T STAT硬盤用RAID卡組成的RAID10;
  • XenServer虛擬機操作系統:Windows Server系統;
  • 虛擬機磁盤:1個10G系統盤和1個5G數據盤,部署的Web服務器(ASP +SQL)。

​故障:​

  • 服務器突然斷電導致服務器中一臺XenServer虛擬機不可用,虛擬磁盤文件丟失,服務器管理員聯系北亞數據恢復中心尋求幫助。

​故障檢測和分析:​

  • 1、拿到原始數據盤後,北亞數據恢復工程師將原始盤連接到北亞數據恢復服務器上,準備超過原始盤總容量的空間作為備份原始盤數據使用,將原始盤以磁盤底層扇區的方式鏡像到備份空間上,以後操作都在備份數據上操作,以確保原始盤數據安全。
  • 2、分析底層數據,北亞數據恢復工程師發現XenServer中虛擬機的磁盤都是以LVM結構存放,即每個虛擬機的虛擬磁盤都是一個LV,虛擬磁盤模式是精簡模式。

LVM的相關信息在Xen Server中都有記載,查看“/etc/lvm/backup/frombtye.com “下LVM的相關信息發現並沒有存在損壞的虛擬磁盤信息,因此北亞數據恢復工程師判斷LVM的信息已經被更新瞭。因此,北亞數據恢復工程師隻能接著分析底層看能否找到未被更新的LVM信息,經過一番努力,終於在底層發現還未更新的LVM信息。

如下圖:

  • 3、根據獲取到的未被更新的LVM信息找到虛擬磁盤存放數據的區域,發現該區域的數據已被破壞。北亞數據恢復工程師經過分析後

發現,造成虛擬機不可用的原因是虛擬機的虛擬磁盤被破壞,虛擬機中的操作系統和數據丟失。這種情況很有可能是由虛擬機遭遇網絡入侵後留下惡意程序造成的。仔細核對這片區域後,北亞工程師發現雖然該區域很多數據被破壞,但還是找到很多數據庫的頁碎片,可以嘗試將這些數據庫的頁碎片拼接成一個可用的數據庫。

​服務器數據恢復過程:​

1、數據恢復方案一

按照方案一的思路進行底層分析,根據RAR壓縮包的結構可以找到很多壓縮包的數據開始位置,而RAR壓縮包文件的第一個扇區中會記錄此RAR的文件名。因此通過從管理員那裡獲知的備份數據庫的壓縮包文件名和目前找到的壓縮包位置的文件名相匹配,可找到備份數據庫壓縮包的開始位置。找到壓縮包的位置後仔細分析這片區域的數據,然後將此區域的數據恢復出來重命名為一個RAR格式的壓縮文件,嘗試解壓此壓縮包,解壓報錯。

報錯如下圖所示:

仔細分析恢復出來的壓縮包,北亞數據恢復工程師發現有部分數據被破壞,因此解壓的時候報錯。嘗試使用RAR的修復工具看能否忽略錯誤,解壓出來部分數據。結果修復完成之後解壓出來的數據隻有網站的部分代碼,並沒有發現數據庫的備份文件。因此可以判斷數據庫備份文件在RAR壓縮包中是損壞的。

如下是解壓出來的部分網站代碼:

2、數據恢復方案二

由於方案一並沒有成功將數據庫恢復出來,因此采用方案二來恢復數據。根據SQL Server數據庫的結構去底層分析數據庫的開始位置。在SQL Server數據庫的結構中,第9個頁會記錄本數據庫的數據庫名。因此從服務器管理員那裡獲知到數據庫名稱之後,北亞數據恢復工程師再分析底層找到此數據庫的開始位置。因為在SQL Server數據庫的每個頁中都會記錄數據庫頁編號以及文件號,北亞數據恢復工程師根據這些特征編寫程序去底層掃描符合數據庫頁的數據。

然後將掃描出來的碎片按順序重組成一個完整MDF文件,再通過MDF校驗程序檢測整個MDF文件是否完整。

重建的MDF文件如下:

​驗證數據:​

經過檢測確定恢復出來的數據沒問題之後,由北亞工程師搭建數據庫環境,將重組後的數據庫附加到搭建好的數據庫環境中,查詢相關表數據是否正常,查詢最新數據是否存在。

截圖如下:

由於數據庫需要結合網站代碼才能更好的驗證數據庫的完整性。管理員從網站開發商那裡拿到網站代碼搭建好環境,然後將恢復出來的數據庫配置好後去驗證,沒有發現問題,本次數據恢復成功。

到此這篇關於碎片拼接技術恢復XenServer服務器SQL Server數據庫數據的文章就介紹到這瞭,更多相關恢復SQL Server數據庫數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: