代码改变世界

LINUX EXT3邮件服务器数据rsync覆盖后的数据恢复

2011-12-06 14:02  魔幻数据  阅读(345)  评论(0编辑  收藏  举报

数据软硬件环境:

服务器上操作系统是RedHat,外接8块盘Raid5的盘柜,盘柜分成一个分区,文件系统是EXT3,存放着用户邮件数据,包含一千多个域名的上万人使用的商用电子邮件帐户数据。

数据丢失原因:

用户用rsync命令把一个空的文件系统远程同步到邮件服务器上,这种错误的操作导致了原先存储中的500多GB的数据只剩下了300GB,另外200GB数据在文件系统中看不见,也就是丢失了!

数据恢复方案:

数据存放在一个1.6TB的分区中,文件系统是ext3。我们把这个分区dd到一个2TB的硬盘中,经过初步扫描dd镜像出来的文件系统,发现丢失的文件一部分属于删除状态,一部分文件名已经被覆盖,要恢复的邮件数量上几万封。对于ext3文件系统,一旦删除了千万级数量的文件,数据恢复的时候想保留完整的目录结构几乎是不可能的,所以数据恢复结果不会考虑目录结构的问题。

经过几经导论,我们把所有丢失掉的邮件一封一封恢复出来,最后用程序按照域名、用户名、收件人、发件人的分类方法,把邮件按照一定的目录结构重新整理出来,得出的数据再跟邮件系统进行内容帐户匹配,最终比较完美的还原出丢失的邮件。

附:rsync工具介绍

rsync(remote sync),顾名思义,就是远程同步工具,利用它可以将服务器A上面的数据同步到服务器B上面,特别是对于小文件传输的效果很好,所以有很多人用它做增量备份,如mysql日志文件的增量备份。

它的特性如下:
1、可以更新整个目录树和文件系统;
2、可以保留文件的软链接、硬链接、权限信息、属主信息、设备和时间信息;
3、无须特殊权限即可安装;
4、内部的流水线提高了多文件传输的速度;
5、可以使用ssh、rsh或者socket链接进行传输;
6、支持匿名传输

 

本文出自达思(http://www.dstfix.cn)工程师覃廷良blog