服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
兩臺SPARC SOLARIS系統(tǒng)通過光纖交換機共享同一存儲作為CLUSTER使用,正常情況下A服務(wù)器工作,當(dāng)A服務(wù)器發(fā)生故障宕機后即可將其關(guān)機然后開啟B服務(wù)器接管。
北亞數(shù)據(jù)恢復(fù)——光纖共享存儲數(shù)據(jù)恢復(fù)
服務(wù)器故障:
由于服務(wù)器配置不當(dāng)導(dǎo)致兩臺服務(wù)器沒有做好對存儲的互斥。
管理員進(jìn)行巡查時開啟B服務(wù)器,查看到B服務(wù)器連接了一組未知的大容量磁盤。由于B服務(wù)器并未啟用處于閑置的狀態(tài),所以管理員本能的認(rèn)為B服務(wù)器連接的那一組大容量磁盤也處于閑置狀態(tài),于是將整個磁盤的某個分區(qū)做了newfs。沒有想到這個磁盤就是那個共享存儲,沒多久A服務(wù)器報警并宕機。
管理員重啟了A服務(wù)器,發(fā)現(xiàn)所有的文件系統(tǒng)均無法mount。管理員執(zhí)行了fsck,除了在B機做過newfs的文件系統(tǒng)其他分區(qū)的數(shù)據(jù)都修復(fù)成功,在B機做過newfs的文件系統(tǒng)的根目錄下只有一個lost+found文件夾,里面有大量數(shù)字標(biāo)號的文件。故障文件系統(tǒng)存儲了兩組ORACLE實例,原結(jié)構(gòu)為UFS,約有200~400個數(shù)據(jù)文件需要恢復(fù)。
北亞數(shù)據(jù)恢復(fù)——光纖共享存儲數(shù)據(jù)恢復(fù)
服務(wù)器故障分析:
光纖設(shè)備的共享沖突案例很多。本案例中A服務(wù)器與B服務(wù)器同時對UFS這個單機文件系統(tǒng)進(jìn)行訪問,兩臺服務(wù)器都以想當(dāng)然的獨享方式對存儲進(jìn)行管理。A服務(wù)器正常管理的文件系統(tǒng)底層上其實已經(jīng)被B服務(wù)器做了文件系統(tǒng)的初始化,A服務(wù)器從緩沖區(qū)寫入文件系統(tǒng)的數(shù)據(jù)也會破壞B服務(wù)器初始化的結(jié)果。
B服務(wù)器newfs實際上會直接作用于原先的文件系統(tǒng)之上,但本案例與單純的newfs有些不同:在A服務(wù)器宕機之前會有一小部分?jǐn)?shù)據(jù)(包括元數(shù)據(jù))回寫到文件系統(tǒng)。如果newfs的結(jié)構(gòu)與之前的相同,數(shù)據(jù)區(qū)是不會被破壞的,如果有一小部分元數(shù)據(jù)存在,還是有可能恢復(fù)部分?jǐn)?shù)據(jù)的。
UFS是傳統(tǒng)的UNIX文件系統(tǒng),以塊組切割,每塊組分配若干固定的inode區(qū)。如果文件系統(tǒng)newfs的結(jié)構(gòu)與之前的相同,文件系統(tǒng)最重要的inode區(qū)便會全部初始化,之前的無法保留。由于inode管理著所有文件的重要屬性,所以單純從文件系統(tǒng)角度恢復(fù)數(shù)據(jù)的難度很大。好在oracle數(shù)據(jù)文件的結(jié)構(gòu)性很強,同時UFS文件系統(tǒng)有一定的存儲規(guī)律,可以通過對oracle數(shù)據(jù)文件的結(jié)構(gòu)重組,直接將數(shù)據(jù)文件、控制文件、日志等恢復(fù)出來。同時oracle數(shù)據(jù)文件本身有表名稱描述,可以反向推斷原來的磁盤文件名。
北亞數(shù)據(jù)恢復(fù)——光纖共享存儲數(shù)據(jù)恢復(fù)
服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、對故障的文件系統(tǒng)做鏡像備份。
2、針對整個鏡像文件做完全的oracle數(shù)據(jù)結(jié)構(gòu)分析、重組。
3、對部分結(jié)構(gòu)太亂,無法重組的文件,參考ufs文件系統(tǒng)結(jié)構(gòu)特征進(jìn)行輔助分析。
4、利用恢復(fù)出來的數(shù)據(jù)文件、控制文件在oracle平臺恢復(fù)數(shù)據(jù)庫。最終恢復(fù)出所有數(shù)據(jù)庫數(shù)據(jù)。
服務(wù)器數(shù)據(jù)恢復(fù)Tips:
fsck是很致命的操作,在執(zhí)行fsck操作之前最好做好備份。光纖存儲的不互斥是很多數(shù)據(jù)災(zāi)難發(fā)生的原因,應(yīng)謹(jǐn)慎部署與實施。