服務器數(shù)據(jù)恢復環(huán)境:
某大廠PS4000服務器,服務器上部署VMware ESXi虛擬化平臺。
服務器故障:
機房斷電,重啟后服務器中的某臺虛擬機不能正常啟動。管理員查看虛擬機配置文件,發(fā)現(xiàn)無法啟動的虛擬機的配置文件除了磁盤文件以外其他配置文件全部丟失,xxx-flat.vmdk磁盤文件和xxx-000001-delta.vmdk快照文件還存在。聯(lián)系VMware原廠工程師進行診斷,VMware原廠工程師嘗試新建一個虛擬機,但發(fā)現(xiàn)存儲空間不足,于是將故障虛擬機下的xxx-flat.vmdk磁盤文件刪除了。VMware工程師重新建了一個虛擬機,分配了固定大小的虛擬磁盤,為虛擬機安裝了Windows Server操作系統(tǒng),部署SQL Server數(shù)據(jù)庫(作為宏橋和索菲兩套應用的數(shù)據(jù)庫),虛擬機磁盤包括:數(shù)據(jù)盤(精簡模式)+快照數(shù)據(jù)盤。
服務器數(shù)據(jù)恢復過程:
1、在VMware vSphere Client上將掛載的存儲設備中的VMFS卷以正常方式卸載掉。然后將存儲上的VMFS卷通過網(wǎng)線的方式連接到北亞企安備份服務器上,將整個VMFS卷以扇區(qū)的方式鏡像到備份空間上。之后的數(shù)據(jù)分析和數(shù)據(jù)恢復操作均在備份的數(shù)據(jù)上進行,避免對原始數(shù)據(jù)造成二次破壞。
2、基于備份文件分析VMFS卷的底層數(shù)據(jù),服務器非正常斷電導致故障虛擬機目錄下的目錄項破壞,這種破壞只是破壞了文件的目錄項,不會影響虛擬機的重要數(shù)據(jù),可以通過人工修復解決。
如果人為刪除某個文件的話,則目錄項對應的數(shù)據(jù)區(qū)索引會被清掉,也不會影響刪除文件的實際數(shù)據(jù),這種情況可根據(jù)刪除虛擬磁盤文件中的文件系統(tǒng)以及虛擬磁盤中的文件類型在VMFS卷自由空間中進行碎片匹配和合并,最終恢復刪除的虛擬磁盤文件。
但是在上述的兩種情況之下又新建了一臺虛擬機,并且分配了虛擬磁盤。經過分析發(fā)現(xiàn)分配的虛擬磁盤所使用的空間已經全部清零了,也是說這個新建的虛擬機所占用的磁盤空間全部被清零。 如果新分配的虛擬磁盤占用了刪除虛擬機磁盤文件所釋放的空間,那么這部分空間的數(shù)據(jù)是無法恢復的。
故障虛擬機的目錄項區(qū)域:
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
3、方案A:根據(jù)VMFS卷的結構以及刪除虛擬磁盤的文件系統(tǒng)信息,在底層的自由空間中掃描符合刪除虛擬機磁盤的區(qū)域,:統(tǒng)計其數(shù)量和大小是否符合刪除虛擬磁盤的大小。根據(jù)虛擬磁盤中文件系統(tǒng)的信息將這些掃描到的碎片進行排列組合,結果發(fā)現(xiàn)很多碎片缺失。重新掃描也沒有找到這些碎片。將掃描到的碎片按照虛擬磁盤原本的順序重組,暫且留空沒有找到的碎片。利用虛擬磁盤快照程序將重組好的父盤和快照盤進行合并生成一個新的虛擬磁盤。再用北亞企安自主開發(fā)的程序解釋虛擬磁盤中的文件系統(tǒng),因為存在數(shù)據(jù)缺失的情況,文件系統(tǒng)解釋過程中有很多報錯,提示某些文件損壞。
解釋完的文件系統(tǒng):
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
文件系統(tǒng)解析完成后,沒有找到原始的數(shù)據(jù)庫文件。雖然宏橋備份和索菲備份這兩個目錄的目錄結構正常,但是在嘗試將備份導入數(shù)據(jù)庫中時,數(shù)據(jù)庫導入程序報錯。
宏橋備份和索菲備份的部分目錄結構:
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
導入.BAK文件報錯信息:
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
4、方案B:由于實施方案一并沒有將原始的數(shù)據(jù)庫文件成功恢復,而且很多備份文件都無法正常使用。北亞企安數(shù)據(jù)恢復工程師只能采用方案B來恢復方案A中尚未恢復的數(shù)據(jù)庫文件。
根據(jù)SQLServer數(shù)據(jù)庫的結構去自由空間中找到數(shù)據(jù)庫的開始位置。SQLServer數(shù)據(jù)庫的第9個頁會記錄本數(shù)據(jù)庫的數(shù)據(jù)庫名,根據(jù)這個特征核對此數(shù)據(jù)庫的頭部頁是否是正在查找的。SQLServer數(shù)據(jù)庫的每個頁中都會記錄數(shù)據(jù)庫頁編號以及文件號,北亞企安數(shù)據(jù)恢復工程師根據(jù)這個特征編寫數(shù)據(jù)庫掃描程序,去底層掃描所有符合數(shù)據(jù)庫頁的數(shù)據(jù)碎片。按順序將掃描出來的碎片重組成一個完整MDF文件,通過MDF校驗程序檢測整個MDF文件的完整性。在整個校驗過程中,只有cl_system3.dbf和erp42_jck.dbf這2個文件由于有部分碎片沒有找到所以校驗不通過之外,其余數(shù)據(jù)庫文件均校驗成功。
校驗完的MDF文件:
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
cl_system3.dbf文件中某個碎片丟失的區(qū)域:
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
5、方案B:方案A和方案B的實施并沒有將所有的數(shù)據(jù)庫文件全部恢復出來。cl_system3.dbf和erp42_jck.dbf這2個文件因缺失部分頁導致其無法正常使用,可以嘗試通過備份來恢復這兩個數(shù)據(jù)庫文件,但是在檢查后發(fā)現(xiàn)cl_system3.dbf沒有備份,而erp42_jck.dbf只有最近一個月的全部增量備份。
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
由于erp42_jck.dbf文件中只缺失少量的頁,因此可以根據(jù)缺失的頁號在增量備份中查找頁,然后補到erp42_jck.dbf文件中,通過這個方法可以恢復一部分丟失的數(shù)據(jù)庫頁。雖然補完后erp42_jck.dbf文件還是缺失部分頁,無法正常使用,但是通過北亞企安自主開發(fā)的數(shù)據(jù)庫解析程序,數(shù)據(jù)恢復工程師將erp42_jck.dbf文件中比較重要的幾十張表成功導出,并成功導入到新建的數(shù)據(jù)庫中。
6、在本地服務器中搭建和原始環(huán)境一樣的數(shù)據(jù)庫環(huán)境,用戶通過遠程工具連接到驗證服務器,安裝宏橋應用軟件,由用戶方工程驗證數(shù)據(jù)庫的完整性。經過用戶方工程師的仔細驗證,數(shù)據(jù)庫可以成功掛載,上層應用可以正常運行,數(shù)據(jù)記錄基本沒有缺失。用戶方認可數(shù)據(jù)恢復結果。
北亞企安數(shù)據(jù)恢復——vmdk數(shù)據(jù)恢復
審核編輯 黃宇
-
服務器
+關注
關注
12文章
8842瀏覽量
84945 -
數(shù)據(jù)恢復
+關注
關注
10文章
525瀏覽量
17311 -
虛擬機
+關注
關注
1文章
897瀏覽量
27960 -
VMware
+關注
關注
1文章
291瀏覽量
21533
發(fā)布評論請先 登錄
相關推薦
評論