來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-05-03 10:15:00
在LINUX下的Ext3/Ext4文件系統(tǒng)下,如果誤刪除了數(shù)據(jù),數(shù)據(jù)恢復(fù)難度很大。如果說(shuō)刪除的文件數(shù)量不大(一般在幾百個(gè)文件以內(nèi)),還能夠通過(guò).journal日志文件對(duì)比殘留的inode信息進(jìn)行恢復(fù),恢復(fù)出來(lái)的數(shù)據(jù)目錄結(jié)構(gòu)不一定能保留完整;如果刪除文件數(shù)量很大,數(shù)據(jù)恢復(fù)幾乎不能完整保留文件目錄結(jié)構(gòu)。這是Ext3/Ext4文件系統(tǒng)的通病,不給誤刪除留后路!在數(shù)據(jù)恢復(fù)業(yè)案例中,有不少例子是LINUX下誤刪除了ORACLE數(shù)據(jù)庫(kù)文件,我今天來(lái)講講Linux下刪除Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)技術(shù)方案。
數(shù)據(jù)丟失案例背景:
計(jì)算機(jī)維護(hù)工程師停掉oracle服務(wù),打算把oracle做一個(gè)冷備份,把庫(kù)文件備份到windows PC Server上,用CuteFTP客戶端下載。在下載過(guò)程中,發(fā)現(xiàn)下載速度特別慢,想刪除下載任務(wù),結(jié)果誤操作,把要下載的oracle實(shí)例文件夾整個(gè)都刪除了, oracle庫(kù)文件、控制文件、日志文件全部刪除了。
LINUX下EXT3文件系統(tǒng)恢復(fù)技術(shù)介紹:
EXT3文件系統(tǒng)沒(méi)有預(yù)留反刪除的功能。
在EXT3文件系統(tǒng)中,每個(gè)文件都是通過(guò)Inode來(lái)描述其數(shù)據(jù)存放的具體位置,當(dāng)刪除文件以后,Inode的數(shù)據(jù)指針部分被清零,文件目錄區(qū)沒(méi)有太多變化。文件的讀寫(xiě)都是通過(guò)Inode來(lái)實(shí)現(xiàn),當(dāng)Inode數(shù)據(jù)指針被清零以后,即便文件內(nèi)容還在,我們也沒(méi)有辦法把文件內(nèi)容組合出來(lái)。
EXT3文件系統(tǒng)是一種帶日志功能的文件系統(tǒng),Inode的變化會(huì)在日志文件.journal中有記錄,.journal文件比較小,一般是32MB。當(dāng)EXT3文件系統(tǒng)中的metadata數(shù)據(jù)發(fā)生變化時(shí),相應(yīng)的metadata在.journal文件會(huì)有一份COPY。比如一個(gè)文件被刪除了,它的Inode信息會(huì)在.journal文件中先保存一份,然后把要?jiǎng)h除文件inode相關(guān)信息清零。這個(gè).journal文件是循環(huán)使用的,當(dāng)操作過(guò)多時(shí),刪除的文件的inode日志記錄會(huì)被新的數(shù)據(jù)替換,這就徹底喪失了根據(jù)inode找回?cái)?shù)據(jù)的機(jī)會(huì)了。如果是大量文件的刪除,這個(gè).journal文件會(huì)被反復(fù)循環(huán)利用多次,只留給最后刪除的那些文件的恢復(fù)機(jī)會(huì)。
數(shù)據(jù)恢復(fù)技術(shù):
客戶要恢復(fù)的是oracle數(shù)據(jù)庫(kù),oracle數(shù)據(jù)庫(kù)文件被刪除以后,只要是數(shù)據(jù)內(nèi)容沒(méi)有被覆蓋,達(dá)思數(shù)據(jù)恢復(fù)技術(shù)可以把文件單獨(dú)提取出來(lái)。
經(jīng)過(guò)深入分析,在.journal文件沒(méi)有找到刪除過(guò)的oracle數(shù)據(jù)文件,原因是用戶刪除數(shù)據(jù)以后,系統(tǒng)還在開(kāi)機(jī)運(yùn)行,同時(shí)嘗試啟動(dòng)過(guò)oracle實(shí)例,oracle產(chǎn)生一些日志文件,這些日志文件數(shù)量比較多,而要恢復(fù)的刪除過(guò)的文件數(shù)量只有16個(gè),在.journal文件中已經(jīng)沒(méi)有了刪除文件的inode信息。
恢復(fù)的思路有兩條:
第一種:根據(jù)oracle數(shù)據(jù)文件內(nèi)部結(jié)構(gòu),對(duì)全盤(pán)進(jìn)行搜索,符合oracle數(shù)據(jù)頁(yè)面的數(shù)據(jù)都提取出來(lái),然后按照oracle數(shù)據(jù)文件的ID號(hào)進(jìn)行重新組合。
第二種:根據(jù)oracle數(shù)據(jù)文件分布規(guī)律,精確定位oracle文件的數(shù)據(jù)指針地址,包括一級(jí)間接地址、二級(jí)間接地址和三級(jí)間接地址,重新構(gòu)造出該文件的inode信息,然后把數(shù)據(jù)讀取出來(lái)。
通過(guò)這兩種恢復(fù)出來(lái)的數(shù)據(jù)效果都很好,最后oracle能正常啟動(dòng)。工程師把數(shù)據(jù)全部備份出來(lái),最后發(fā)現(xiàn)有兩個(gè)表數(shù)據(jù)少了一些記錄,經(jīng)查明,原因就是刪除文件以后,一些日志文件的寫(xiě)入該分區(qū),破壞了oracle數(shù)據(jù)文件的一些數(shù)據(jù)頁(yè)面,幸好這兩張表數(shù)據(jù)對(duì)用戶來(lái)說(shuō)不是很重要。
數(shù)據(jù)安全提醒:
在LINUX/UINX下誤刪除了文件,當(dāng)發(fā)現(xiàn)數(shù)據(jù)丟失以后,最好不要進(jìn)行任何操作,馬上關(guān)機(jī),保留現(xiàn)場(chǎng)。如果條件不允許關(guān)機(jī),就要想辦法把數(shù)據(jù)丟失的文件系統(tǒng)經(jīng)過(guò)DD鏡像到另外的存儲(chǔ)空間上作為最原始的備份。
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線: 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3