共计 1086 个字符,预计需要花费 3 分钟才能阅读完成。
MongoDB 数据库数据恢复环境:
MongoDB 数据库部署在一台虚拟机上,虚拟机操作系统为 Windows Server2012。
MongoDB 数据库故障 & 剖析:
因为业务倒退需要,须要对 MongoDB 数据库内的文件进行迁徙,在 MongoDB 服务开启的状态下用户将数据库文件复制到其余分区,将 MongoDB 数据库之前所在分区进行了格式化操作。迁徙后用户发现数据库文件无奈应用,将数据库文件拷贝回原分区后 MongoDB 数据库仍然无奈失常应用,报错“Windows 无奈启动 MongoDB 服务(位于 本地计算机 上)谬误 1067:过程意外终止。”
Tips:在 MongoDB 服务开启状态下拷贝数据库文件会导致 mongod.lock 和 WiredTiger.lock 这两个文件拷贝出错,如果呈现这种状况,咱们能够在拷贝文件中找到这两个文件并删除,而后再次尝试启动 MongoDB 数据库,在数据库重新启动后会主动从新生成这两个文件,数据库即可失常应用。
数据库数据恢复工程师检查用户迁徙出的数据库文件后没有找到_mdb_catalog.wt 文件。mdb_catalog.wt 文件是专门用于存储 MongoDB 数据库中所有汇合元数据的文件,数据库启动时所必须读取的相干信息都存储于 mdb_catalog.wt 文件中。所以,北亚数据恢复工程师推断导致 MongoDB 数据库启动报错的起因应该是 mdb_catalog.wt 文件失落,数据库无奈读取汇合对应的 WT table 名字,汇合的创立选项,汇合的索引信息等元数据。
MongoDB 数据库数据恢复过程:
1、扫描 MongoDB 数据库分区的底层数据,后果没有找到对于_mdb_catalog.wt 文件的信息。屡次调整扫描形式进行扫描依然无奈查找到_mdb_catalog.wt 的相干信息,数据恢复工程师判断该文件已被笼罩,无奈通过_mdb_catalog.wt 文件修复 MongoDB 数据库。
2、数据恢复工程师调整策略,因为该 MongoDB 数据库是基于 WiredTiger 存储引擎,于是北亚数据恢复工程师在 Windows 环境下编译出可执行的 wt 工具。
3、借助编译后的 wt 工具荡涤回写 MongoDB 数据库汇合文件内所有数据,读取数据后果并写入到文件中。
4、创立一个全新的 MongoDB 数据库并创立相应数据量的汇合,将文件逐个写入到汇合中,查问数据集并重建索引信息。
5、通过查问汇合中的记录,确定记录类型,重建汇合索引,汇合复原实现后能够失常查看其中数据:
6、帮助用户对全副汇合进行索引重建后,由用户对 MongoDB 数据库进行查问验证,确定数据无误,本次数据恢复工作实现。