关于数据恢复:数据库数据恢复MongoDB数据库文件损坏的数据恢复案例

34次阅读

共计 1183 个字符,预计需要花费 3 分钟才能阅读完成。

**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 后,重建汇合索引,汇合复原实现,能够失常查看其中数据:

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

正文完
 0