鄭州做網(wǎng)站比較好公司怎么把自己的網(wǎng)站發(fā)布到網(wǎng)上
虛擬化數(shù)據(jù)恢復(fù)環(huán)境:
某品牌服務(wù)器(部署VMware EXSI虛擬機(jī))+同品牌存儲(chǔ)(存放虛擬機(jī)文件)。
虛擬化故障:
意外斷電導(dǎo)致服務(wù)器上某臺(tái)虛擬機(jī)無(wú)法正常啟動(dòng)。查看虛擬機(jī)配置文件發(fā)現(xiàn)這臺(tái)故障虛擬機(jī)除了磁盤文件以外其他配置文件全部丟失,xxx-flat.vmdk磁盤文件和xxx-000001-delta.vmdk快照文件還在。管理員聯(lián)系VMware工程師尋求幫助。VMware工程師嘗試新建一個(gè)虛擬機(jī)來(lái)解決故障,但發(fā)現(xiàn)ESXi存儲(chǔ)空間不足。于是將故障虛擬機(jī)下的xxx-flat.vmdk磁盤文件刪除,然后重建一個(gè)虛擬機(jī)并且分配固定大小的虛擬磁盤。新建虛擬機(jī)安裝Windows Server操作系統(tǒng),部署SQL Server數(shù)據(jù)庫(kù)環(huán)境(管理宏橋和索菲兩套應(yīng)用數(shù)據(jù)庫(kù))。
虛擬化數(shù)據(jù)恢復(fù)過(guò)程:
1、在VMware vSphere Client上將掛載的存儲(chǔ)上的VMFS卷以正常方式卸載,然后將存儲(chǔ)上的VMFS卷通過(guò)網(wǎng)線的方式連接到備份服務(wù)器上。使用工具將整個(gè)VMFS卷以扇區(qū)的方式鏡像到備份空間上,以確保數(shù)據(jù)安全。之后的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作均在備份數(shù)據(jù)上進(jìn)行,避免對(duì)原始數(shù)據(jù)造成二次破壞。
2、基于備份數(shù)據(jù)分析VMFS卷的底層數(shù)據(jù),發(fā)現(xiàn)異常斷電導(dǎo)致故障虛擬機(jī)目錄下的目錄項(xiàng)被破壞。這種破壞不會(huì)影響虛擬機(jī)的重要數(shù)據(jù),可以通過(guò)人工修復(fù)。如果是人為刪除某個(gè)文件,目錄項(xiàng)對(duì)應(yīng)的數(shù)據(jù)區(qū)索引會(huì)被清掉,但是也不會(huì)影響被刪除文件的實(shí)際數(shù)據(jù)。這種情況可根據(jù)刪除虛擬磁盤文件中的文件系統(tǒng)以及虛擬磁盤中的文件類型,在VMFS卷自由空間中進(jìn)行碎片匹配和合并來(lái)恢復(fù)刪除的虛擬磁盤文件。但是在上述兩種情況之下又新建了一臺(tái)虛擬機(jī),并且分配了虛擬磁盤。經(jīng)過(guò)分析發(fā)現(xiàn)分配的虛擬磁盤已經(jīng)全部清零(在創(chuàng)建虛擬磁盤的時(shí)候會(huì)選擇創(chuàng)建磁盤的類型),也就是這個(gè)新建的虛擬機(jī)所占用的磁盤空間全部被清零。 如果新建虛擬磁盤占用了被刪除虛擬機(jī)磁盤文件所釋放的空間,那么此部分空間中的數(shù)據(jù)將無(wú)法恢復(fù)。
故障虛擬機(jī)的目錄項(xiàng)區(qū)域:
3、方案a:
根據(jù)VMFS卷的結(jié)構(gòu)以及刪除虛擬磁盤的文件系統(tǒng)信息,在底層的自由空間中掃描符合刪除虛擬機(jī)磁盤的區(qū)域,并統(tǒng)計(jì)其數(shù)量和大小是否符合刪除虛擬磁盤的大小。根據(jù)虛擬磁盤中文件系統(tǒng)的信息將這些掃描到的碎片進(jìn)行排列組合,結(jié)果發(fā)現(xiàn)很多碎片缺失。重新掃描也沒(méi)有找到這些缺失的碎片。將掃描到的碎片按照虛擬磁盤原本的順序進(jìn)行重組,對(duì)于沒(méi)有找到的碎片暫且留空。使用虛擬磁盤快照程序?qū)⒅亟M好的父盤和快照盤進(jìn)行合并,生成一個(gè)新的虛擬磁盤,然后解釋虛擬磁盤中的文件系統(tǒng)。因?yàn)閿?shù)據(jù)缺失,文件系統(tǒng)解釋過(guò)程中出現(xiàn)大量報(bào)錯(cuò),提示某些文件損壞。
解釋完的文件系統(tǒng):
解析完文件系統(tǒng)后發(fā)現(xiàn)沒(méi)有找到原始的數(shù)據(jù)庫(kù)文件。雖然宏橋備份和索菲備份這兩個(gè)目錄的目錄結(jié)構(gòu)正常,但是將備份導(dǎo)入數(shù)據(jù)庫(kù)中時(shí),數(shù)據(jù)庫(kù)導(dǎo)入程序報(bào)錯(cuò)。
宏橋備份和索菲備份的部分目錄結(jié)構(gòu):
導(dǎo)入.BAK文件報(bào)錯(cuò):
4、方案b:
由于方案a并沒(méi)有將原始的數(shù)據(jù)庫(kù)文件恢復(fù)出來(lái),并且好多備份文件都無(wú)法正常使用。因此采用方案b來(lái)恢復(fù)尚未恢復(fù)出來(lái)的數(shù)據(jù)庫(kù)文件。
根據(jù)SQL Server數(shù)據(jù)庫(kù)的結(jié)構(gòu)去自由空間中找到數(shù)據(jù)庫(kù)的開(kāi)始位置。根據(jù)SQLServer數(shù)據(jù)庫(kù)結(jié)構(gòu),數(shù)據(jù)庫(kù)的第9個(gè)頁(yè)會(huì)記錄數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)名。根據(jù)這個(gè)特征可以核對(duì)此數(shù)據(jù)庫(kù)的頭部頁(yè)是否是正在查找的。SQL Server數(shù)據(jù)庫(kù)的每個(gè)頁(yè)中都會(huì)記錄數(shù)據(jù)庫(kù)頁(yè)編號(hào)以及文件號(hào)。根據(jù)SQL Server數(shù)據(jù)庫(kù)的上述那些特征,
北亞企安數(shù)據(jù)恢復(fù)工程師編寫數(shù)據(jù)庫(kù)掃描程序。利用該程序去底層掃描所有符合數(shù)據(jù)庫(kù)頁(yè)的數(shù)據(jù)碎片,然后將掃描出來(lái)的碎片按照順序重組成一個(gè)完整MDF文件。通過(guò)MDF校驗(yàn)程序檢測(cè)MDF文件的完整性。在校驗(yàn)過(guò)程中,只有cl_system3.dbf和erp42_jck.dbf因有部分碎片沒(méi)有找到外,其余數(shù)據(jù)庫(kù)文件均校驗(yàn)成功。
校驗(yàn)完的MDF文件:
cl_system3.dbf文件中某個(gè)碎片丟失的區(qū)域:
5、方案c:
上述兩個(gè)方案實(shí)施完后并沒(méi)有將所有的數(shù)據(jù)庫(kù)文件恢復(fù)出來(lái)。cl_system3.dbf和erp42_jck.dbf這2個(gè)文件因缺失部分頁(yè)導(dǎo)致無(wú)法正常使用,因此需要采用備份來(lái)恢復(fù)這兩個(gè)數(shù)據(jù)庫(kù)文件。在檢查完這兩個(gè)文件的備份后發(fā)現(xiàn)cl_system3.dbf的全部備份因備份機(jī)制故障沒(méi)有備出來(lái),而erp42_jck.dbf只有增量備份。
由于erp42_jck.dbf文件中只缺失少量的頁(yè),因此可以根據(jù)缺失的頁(yè)號(hào)在增量備份中查找缺失的頁(yè),然后補(bǔ)到erp42_jck.dbf文件中。這樣可以恢復(fù)一部分丟失的數(shù)據(jù)庫(kù)頁(yè)。雖然補(bǔ)完后還是缺失部分頁(yè),但是通過(guò)北亞企安自主開(kāi)發(fā)的數(shù)據(jù)庫(kù)解析程序?qū)rp42_jck.dbf文件中比較重要的幾十張表成功導(dǎo)出,并成功導(dǎo)入到新建的數(shù)據(jù)庫(kù)中。
6、驗(yàn)證數(shù)據(jù)
在本地服務(wù)器中搭建和原始環(huán)境一樣的數(shù)據(jù)庫(kù)環(huán)境。由用戶方通過(guò)遠(yuǎn)程工具連接到驗(yàn)證服務(wù)器,并安裝上層宏橋應(yīng)用軟件驗(yàn)證數(shù)據(jù)庫(kù)是否完整。經(jīng)過(guò)仔細(xì)驗(yàn)證,用戶確認(rèn)數(shù)據(jù)庫(kù)基本沒(méi)問(wèn)題,上層應(yīng)用可以正常運(yùn)行,數(shù)據(jù)記錄也基本沒(méi)有缺失,數(shù)據(jù)庫(kù)成功掛載。