故障简述
平台:华为云ECS云服务器
操作系统:CentOS
数据库:MongoDB 4.2
数据量:数千个集合,共3TB压缩数据(实际数据约8TB)
2021年4月11日, MongoDB遭到黑客勒索病毒攻击入侵,清空了所有库和wt 文件,并留下勒索信息;之后,因业务无法停止,又陆续覆盖写入了20GB数据。
用户寻求数据恢复公司支持,但因集合数量过多,数据量过大,又有20GB的覆盖,所有恢复公司均无法提供数据恢复服务。
用户最终联系了数寻信息科技,我们判断这种情况可以通过 BSON碎片提取的方式处理,现将处理思路和处理过程整理并发布。
恢复过程
步骤一:保护生产数据,制定恢复方案
第一时间建议用户给数据盘做快照/磁盘备份保护,以防止数据被进一步破坏。
目前针对MonogoDB的恢复方案有很多,包括:
方案一:使用wt工具对数据进行打捞
要求有WT文件,且结构完好,这时可以用bsondump提取json:
bsondump xxx.wt
生成的bson文件可用mongorestore导入到mongodb中:
mongorestore --host --port --db= --collection=
方案二:采用DU_MongoDB_Restore系列工具做BSON碎片抽取,此工具可以直接从磁盘中提取出所有bson碎片。
首先在linux下提取到所有bson碎片:
DU_MongoDB_Restore_Linux -s [source_dev] -d [out_bson_file]
然后在windows平台将提取到的bson文件转化为json:
生成的bson文件即可用mongorestore导入到mongodb中:
mongorestore --host --port --db= --collection=
在本案例中,WT文件已经被删除,且无法恢复,因此只能采用方案二作BSON碎片提取。
步骤二:恢复过程
- 新建一台CentOS云主机做为恢复机,并将原始数据盘和中转盘挂载到恢复机上
mkfs.ext4 /dev/vdc
mount /dev/vdc /mnt
- 上传DU_MongoDB_Restore_Linux到 /mnt下,设置权限,并运行,这里数据源磁盘路径为/dev/vdb,我们设置为后台运行模式:
chmod 777 /mnt/DU_MongoDB_Restore_Linux
sudo nohup /mnt/DU_MongoDB_Restore_Linux -s /dev/vdb -d /mnt/bson.bin &
查看nohup.out,可以监控扫描进度:
open /dev/vdc success.
open ./bson.bin success.
/dev/vdc DevSize = 3221225472000.
Will Search Len = 3221225472000 .
Thu Apr 15 01:12:20 2021
blockC = 2098,outLen = 241348217 (230 MB),searched: 104857600 (100 MB 0%).
Thu Apr 15 01:12:20 2021
blockC = 3113,outLen = 355406251 (338 MB),searched: 209715200 (200 MB 0%).
Thu Apr 15 01:12:20 2021
blockC = 3113,outLen = 355406251 (338 MB),searched: 314572800 (300 MB 0%).
Thu Apr 15 01:12:20 2021
blockC = 3332,outLen = 377038566 (359 MB),searched: 419430400 (400 MB 0%).
-
新建一台windows恢复机,建议配置4核心CPU,8GB以上内存
-
如果bson.bin比较小,可以直接上传到windows上;如果文件较大,则可以将CentOS上的12TB BSON保存磁盘卸载后,直接挂载到windows恢复机上。案例中扫描到的BSON.bin达到 8TB,因此我们选择将整个磁盘挂载到windows上。
-
在windows上运行DU_MongoDB_Restore_Win.exe,按提示输入BSON.bin所在的磁盘序号;也可以直接将BSON.bin文件拖入到窗口分析。工具在运行目录下创建RESTORE_FILE目录,按字段不同,将json文件归类输出;单个json文件上限4GB:
-
生成的bson文件即可用mongorestore导入到mongodb中:
mongorestore --host --port --db= --collection=
至此恢复工作完满结束。
补充:数天后,客户对数寻信息的恢复工作给予了高度肯定!
技术支持
https://shop65444600.taobao.com
恢复工具
DU_MongoDB_Restore v5.2 2021.4.14 :
链接:https://pan.baidu.com/s/175LSTgS5yOk6cHw466J2bg
提取码:l6ry