歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

實例:Linux EXT3下刪除MySQL據庫數據恢復

[數據恢復故障描述]

一台重要的MYSQL數據庫服務器,146GB*2,RAID1,約130GB DATA卷,存儲了大約200~300個數據庫。平時管理員對每個數據庫dump出以後,直接壓縮成.gz包,再將所有重要的.gz 包合起來壓縮成一個總的.tar.gz包,這些文件每日產生一次,覆蓋原來的備份。數據文件及備份文件全部存儲於data卷上。

一次系統維護中,管理員不小心將data卷下的所有文件全部rm,刪除後,馬上停止系統,再未做其它操作,但刪除時仍有大量終端在訪問此服務器。

要求恢復mysql數據庫文件,即myd、frm、myi(可重建)文件,或每個數據庫的.gz包,或所有重要數據庫總的.tar.gz備份包。

[數據恢復分析]

ext3下的數據刪除,理論上,會清除inode中除節點類型、日期外的其他屬性,諸如文件大小、數據存儲地址等屬性會全部清0,同時目錄表中會以目錄條目長度的方式屏蔽掉已刪除文件,但會保留節點編號,最後會改變BITMAP中的空間占用標志。

即使是目錄表中存在刪除文件的節點編號,但因節點內容已經沒有需要的東西,與數據區也是脫鉤的。

從數據角度,大多數文件類型都會有特定的文件頭標志,按頭標志是有可能找到刪除文件的起始位置的,但EXT3以塊組為單位進行存儲,同時數據與索引是混合存儲於數據區的,所以數據連續存儲的可能性非常之小,這樣,按文件格式進行處理也是很困難的。

唯一的算法是結合上述幾個特征,加上對日志的分析,加上對存儲過程的模擬分析,盡可能地逼近真實存儲結構。

[數據恢復過程]

1、對故障卷做完整備份。

2、對總.tar.gz進行恢復分析,但恢復出來的文件解壓到50%左右會報錯,後續文件列表也無法列出。經分析,最大的原因是刪除時仍有數據寫入破壞文件導致。

3、對分包的.gz文件進行恢復分析,大多數恢復成功。

4、對於未恢復成功的.gz數據庫。直接恢復其myd\frm數據文件,所有數據恢復成功。

[其他]

1、LINUX EXT3數據刪除後應盡快斷掉文件系統IO,通常umount文件系統即可。

2、對故障卷做dd備份,確保數據恢復過程不會導致更嚴重的故障

Copyright © Linux教程網 All Rights Reserved