**MongoDB数据库复原环境:
Windows Server服务器;
MongoDB数据库。

数据库故障:
在未敞开MongoDB数据库服务的状况下拷贝数据库文件到其余分区。拷贝实现后,管理员对原数据库分区进行了格式化,而后将数据库文件拷回格式化的原分区,重新启动MongoDB服务时候发现服务无奈启动。报错如下:

管理员分割咱们数据恢复核心进行数据恢复操作。

MongoDB数据库故障检测:
服务没有敞开的状况下间接对MongoDB数据库文件进行拷贝,会导致拷贝进去的mongod.lock文件以及WiredTiger.lock文件谬误。如果删除这两个拷贝进去的文件,再次启动服务,MongoDB会主动从新生成这2个文件。然而检测后发现在拷贝出的数据库文件中,_mdb_catalog.wt文件失落。_mdb_catalog.wt文件里存储了MongoDB数据库中所有汇合的元数据,数据库启动时须要从这个文件中读取相干的信息。这个文件的失落导致数据库无奈获取数据库中汇合对应的名字、汇合的创立选项、汇合的索引信息等元数据,数据库就无奈启动。

MongoDB数据库数据恢复过程:
1、数据恢复工程师尝试从文件系统的角度对_mdb_catalog.wt文件进行复原。
2、应用数据恢复软件对数据库分区进行扫描,没有发现_mdb_catalog.wt文件的相干信息。依据MongoDB数据库中数据文件的特征值对数据库分区进行扫描,也没有发现_mdb_catalog.wt相干的数据区域。由此判断,_mdb_catalog.wt文件曾经被彻底笼罩毁坏了,无奈复原。
3、数据恢复工程师只能设法从数据库的角度提取数据。因为所部署的MongoDB数据库是基于WT存储引擎的,能够应用WT实用工具包提取数据库中的数据。
4、首先下载WT实用工具包,而后在windows环境下编译出可执行的wt工具。

5、编译实现后,应用编译好的wt工具对数据库汇合文件中的数据进行荡涤。荡涤实现后,间接读取数据库汇合文件中的数据并写入到一个dump文件中。
6、通过这种形式把数据库各个汇合文件中的全副可用数据都提取进去,下一步就是还原数据库环境。
7、从新创立一个MongoDB数据库,依据提取出的汇合文件创建对应数量的空集合。而后应用wt工具将提取进去的dump文件一一写入到新创建的空集合中。
8、通过查问汇合中的数据,确认这些汇合与元数据库中汇合的对应关系,批改汇合名称,重建索引信息。
9、通过查问汇合中的记录,确定记录类型,从而确定fs.files和fs.chunks汇合的地位,批改这两个汇合名称为xxx.files和xxx.chunks后,重建汇合索引,汇合复原实现,能够失常查看其中数据:

数据验证:
帮助管理员对全副汇合进行索引重建之后,管理员对数据库整体进行查问验证,确认数据无误,本次数据恢复工作实现。**