数据库数据恢复环境:
Windows Server操作系统服务器,部署MongoDB数据库。

数据库故障&剖析:
在MongoDB数据库服务未敞开的状况下,管理员将MongoDB数据库文件从原分区拷贝到其余分区,而后将MongoDB数据库所在原分区格式化,格式化实现又将MongoDB数据库文件拷回原分区,启动MongoDB服务失败并报错。

在MongoDB数据库服务没有敞开的状况下,间接拷贝MongoDB数据库文件,mongod.lock和WiredTiger.lock这2个文件拷贝进去是有问题的。正确的操作方法是:在拷贝出的数据库文件中将这两个文件删除后再次启动服务,这2个文件会由MongoDB自行从新生成。
通过检测拷贝出的MongoDB数据库文件发现_mdb_catalog.wt文件失落。
_mdb_catalog.wt文件里存储了MongoDB数据库中所有汇合的元数据,MongoDB数据库启动时须要从_mdb_catalog.wt文件中读取相干信息。如果_mdb_catalog.wt文件失落,MongoDB数据库就无奈获取数据库中汇合对应的名字、汇合的创立选项、汇合的索引信息等元数据,数据库无奈启动。

数据库数据恢复过程:
1、对MongoDB数据库所波及的硬盘以只读形式进行全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,防止在复原数据的过程中对原始数据造成二次毁坏。
2、尝试从文件系统的层面复原_mdb_catalog.wt文件。扫描数据库分区没有发现和_mdb_catalog.wt文件相干的信息。依据MongoDB数据库数据文件的特征值扫描数据库分区,也没有发现和_mdb_catalog.wt相干的数据区域。所以能够判定_mdb_catalog.wt文件曾经被彻底毁坏,无奈复原,只能从数据库层面复原数据了。
3、该案例中部署的MongoDB数据库基于WT存储引擎,能够应用WT实用工具包提取数据库中的数据。下载WT实用工具包并在windows环境下编译出可执行的wt工具。

4、编译实现后,北亚企安数据恢复工程师应用wt工具荡涤数据库的汇合文件中的数据,实现荡涤后间接读取文件中的数据并写入到一个dump文件中。将数据库的各个汇合文件中的全副可用数据提取进去。
5、创立一个MongoDB数据库,依据提取出的汇合文件创建对应数量的空集合。应用wt工具将提取进去的dump文件一一写入到新创建的空集合中。
6、通过查问汇合中的数据来确认这些写入dump文件的汇合与元数据库中汇合的对应关系,批改汇合名称并重建索引信息。
7、通过查问汇合中的记录,确定记录类型。确定fs.files和fs.chunks汇合的地位后,批改这两个汇合名称为xxx.files和xxx.chunks后并重建汇合索引,汇合复原实现后就能够失常查看其中数据。


数据库数据验证:
帮助用户方工程师对全副汇合进行索引重建之后,由用户对数据库进行查问验证,确认数据无误,本次数据恢复工作实现。