ITPub博客

首页 > 数据库 > 数据库开发技术 > 数据库数据恢复—MongoDB数据库报错1067的数据恢复案例

数据库数据恢复—MongoDB数据库报错1067的数据恢复案例

原创 数据库开发技术 作者:北亚数据恢复 时间:2025-07-01 10:21:41 0 删除 编辑

MongoDB数据库数据恢复环境:

一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。


MongoDB数据库故障:

工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。

结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”

通常情况下,如果在MongoDB服务尚未关闭的情况下拷贝数据库文件,会导致mongod.lock和WiredTiger.lock这两个文件拷贝出错。如果出现这种情况,可以在拷贝出来的文件中找到这两个文件并删除,再次启动MongoDB数据库,这两个文件会自动重新生成,数据库即可正常启动。

北亚企安数据恢复工程师对拷贝出来的所有文件进行检测,发现迁移出的数据库文件中丢失了_mdb_catalog.wt文件。

_mdb_catalog.wt文件是专门用于存储MongoDB中所有集合元数据的文件,MongoDB数据库启动时必须读取的相关信息都存储于_mdb_catalog.wt文件中。所以,导致数据库启动报错的原因应该是_mdb_catalog.wt文件丢失导致数据库无法获取集合对应的WT table名字、集合的创建选项、集合的索引信息等元数据。


MongoDB数据库数据恢复过程:

1、扫描MongoDB数据库所在分区的底层数据,但是没有扫描到和_mdb_catalog.wt文件有关的信息,使用其他扫描方式进行扫描,仍然无法查找到_mdb_catalog.wt文件相关信息,基本上可以确定该文件已被覆盖,无法通过恢复_mdb_catalog.wt文件的方式来修复数据库。

2、调整MongoDB数据库数据恢复策略。由于故障数据库是基于WiredTiger存储引擎,北亚企安数据恢复工程师在Windows环境下编译出可执行的wt工具。

3、借助编译出的wt工具清洗回写数据库集合文件内所有数据,读取数据结果并写入到文件中。创建一个全新的MongoDB数据库,创建相应数据量的集合,将文件逐一写入集合中,查询数据集并重建索引信息。

4、通过查询集合中的记录,确定记录类型,重建集合索引。集合恢复完成后可以正常查看其中数据:

5、对全部集合进行索引重建之后,用户方对数据库进行查询验证,经过验证确认数据无误,此次数据恢复工作完成。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31380569/viewspace-3089619/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事服务器数据恢复、磁盘阵列数据恢(DEll、HP、IBM、华为、NetApp等),虚拟化数据恢复(VSAN、VMware、Kvm等),数据库数据恢复(Oracle、Sql Server、MySql、Mongodb等),小型机数据恢复等方面的。24h数据救援13439392933

注册时间:2016-08-02

  • 博文量
    1127
  • 访问量
    876529