數(shù)據(jù)作為用戶的核心資產(chǎn),尤其是很多用戶在阿里云ECS上構(gòu)建網(wǎng)站、自建數(shù)據(jù)庫(kù)(MYSQL/MongoDB/Redis),這些數(shù)據(jù)在日常使用中難免會(huì)出現(xiàn)被誤刪的情況,在這個(gè)時(shí)候該如何快速、有效地恢復(fù)數(shù)據(jù)呢?
其實(shí)在阿里云上恢復(fù)數(shù)據(jù)有多種方式:
1、通過(guò)阿里云控制臺(tái)回滾備份好的快照,自定義鏡像恢復(fù)等方式;
2、購(gòu)買多臺(tái)ECS,實(shí)現(xiàn)業(yè)務(wù)的負(fù)載均衡,高可用;
3、利用對(duì)象存儲(chǔ) OSS(Object Storage Service),存儲(chǔ)靜態(tài)網(wǎng)頁(yè)和海量圖片、視頻等重要數(shù)據(jù)

今天主要以CentOS7操作系統(tǒng)為例,教大家如何使用開(kāi)源工具Extundelete快速恢復(fù)被誤刪除掉的數(shù)據(jù)。
首先在Linux下,基于開(kāi)源的數(shù)據(jù)恢復(fù)工具有很多,比較常見(jiàn)的有debugfs、R-Linux、ext3grep、extundelete等,而常用的是ext3grep和extundelete,這兩個(gè)工具的恢復(fù)原理基本一樣,只是extundelete功能更加強(qiáng)大。
Extundelete是基于linux的開(kāi)源數(shù)據(jù)恢復(fù)軟件。在使用阿里云的云服務(wù)器ECS時(shí),如果不小心誤刪數(shù)據(jù),并且Linux系統(tǒng)也沒(méi)有與Windows系統(tǒng)下回收站類似的功能,那么就可以方便快速安裝此工具。
Extundelete能夠利用inode信息結(jié)合日志去查詢?cè)搃node所在的block位置,以此來(lái)查找和恢復(fù)所需的數(shù)據(jù),該工具最給力的一點(diǎn)就是支持ext3/ext4雙格式分區(qū)恢復(fù),基于整個(gè)磁盤(pán)的恢復(fù)功能較為強(qiáng)大。
此外需要注意的是在數(shù)據(jù)被誤刪后,第一時(shí)間要做的是卸載被刪除數(shù)據(jù)所在的磁盤(pán)或磁盤(pán)分區(qū)。因?yàn)閷⑽募h除后,僅僅是將文件的inode結(jié)點(diǎn)中的扇區(qū)指針清零,實(shí)際文件還存儲(chǔ)在磁盤(pán)上,如果磁盤(pán)以讀寫(xiě)模式掛載,這些已刪除文件的數(shù)據(jù)塊就可能被操作系統(tǒng)重新分配出去,當(dāng)這些數(shù)據(jù)塊被新的數(shù)據(jù)覆蓋后,這些數(shù)據(jù)就真的丟失了,哪怕恢復(fù)工具也回力無(wú)天。所以,以只讀模式掛載磁盤(pán)可以盡量降低數(shù)據(jù)塊中數(shù)據(jù)被覆蓋的風(fēng)險(xiǎn),以提高恢復(fù)數(shù)據(jù)成功的幾率。
還有就是在實(shí)際線上恢復(fù)過(guò)程中,切勿將extundelete安裝到被誤刪的文件所在硬盤(pán),這樣會(huì)有一定幾率將需要恢復(fù)的數(shù)據(jù)徹底覆蓋,切記操作前一定要做好快照備份。

當(dāng)然,也不是所有被誤刪的數(shù)據(jù)都能使用此方法恢復(fù),其適用對(duì)象主要針對(duì)于:
1、磁盤(pán)中文件被誤刪除的用戶,且未對(duì)磁盤(pán)進(jìn)行過(guò)寫(xiě)入等操作
2、網(wǎng)站訪問(wèn)量小、少量 ECS 實(shí)例的用戶
如今數(shù)據(jù)已經(jīng)成為企業(yè)的重要資產(chǎn),甚至是核心資產(chǎn)。數(shù)據(jù)資產(chǎn)在未來(lái)很長(zhǎng)時(shí)間內(nèi)會(huì)越來(lái)越受到重視,這就要求我們不僅要重視收集數(shù)據(jù),更要注重存儲(chǔ)和保護(hù)數(shù)據(jù),否則當(dāng)數(shù)據(jù)一旦丟失,后果將非常嚴(yán)重。
