0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Frombyte 来源:Frombyte 作者:Frombyte 2023-04-18 14:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

数据库数据恢复环境:

Windows Server操作系统服务器,部署MongoDB数据库。

数据库故障&分析:

在MongoDB数据库服务未关闭的情况下,管理员将MongoDB数据库文件从原分区拷贝到其他分区,然后将MongoDB数据库所在原分区格式化,格式化完成又将MongoDB数据库文件拷回原分区,启动MongoDB服务失败并报错。

poYBAGQ-Pg6AWHFxAAJ9VHkTNrk678.png

北亚企安数据恢复——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工具。

poYBAGQ-Ph-AMmzIAAC7iEG0z_I132.png

北亚企安数据恢复——MongoDB数据恢复

4、编译完成后,北亚企安数据恢复工程师使用wt工具清洗数据库的集合文件中的数据,完成清洗后直接读取文件中的数据并写入到一个dump文件中。将数据库的各个集合文件中的全部可用数据提取出来。

5、创建一个MongoDB数据库,根据提取出的集合文件创建对应数量的空集合。使用wt工具将提取出来的dump文件一一写入到新创建的空集合中。

6、通过查询集合中的数据来确认这些写入dump文件的集合与元数据库中集合的对应关系,修改集合名称并重建索引信息。

7、通过查询集合中的记录,确定记录类型。确定fs.files和fs.chunks集合的位置后,修改这两个集合名称为xxx.files和xxx.chunks后并重建集合索引,集合恢复完成后就可以正常查看其中数据。

poYBAGQ-PimASfrhAAD_HobNY0g256.png

北亚企安数据恢复——MongoDB数据恢复

pYYBAGQ-PimAFxmBAAFG3HpaTRk463.png

北亚企安数据恢复——MongoDB数据恢复

数据库数据验证:

协助用户方工程师对全部集合进行索引重建之后,由用户对数据库进行查询验证,确认数据无误,本次数据恢复工作完成。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7329

    浏览量

    128650
  • 数据恢复
    +关注

    关注

    10

    文章

    689

    浏览量

    18804
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67742
  • mongodb
    +关注

    关注

    0

    文章

    24

    浏览量

    536
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文
    的头像 发表于 07-24 11:12 438次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    Oracle数据恢复—格式化分区导致Oracle数据库报错的数据恢复案例

    完成后将所有硬盘按照原样还原到原服务器中,后续的数据分析和数据恢复操作基于镜像文件进行,避免对原始磁盘数据造成二次破坏。基于镜像
    的头像 发表于 07-22 14:06 273次阅读
    Oracle<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—格式化分区导致Oracle<b class='flag-5'>数据库</b>报错的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的
    的头像 发表于 07-01 11:13 471次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库文件</b>丢失的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 510次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—SQL Server<b class='flag-5'>数据库</b>被加密如何<b class='flag-5'>恢复数据</b>?

    oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据

    oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据
    的头像 发表于 06-05 16:01 611次阅读
    oracle<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—oracle<b class='flag-5'>数据库</b>误执行错误truncate命令如何<b class='flag-5'>恢复数据</b>?

    分布式存储数据恢复—虚拟机上hbase和hive数据库数据恢复案例

    分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层
    的头像 发表于 04-17 11:05 515次阅读

    数据库数据恢复——MongoDB数据库文件拷贝后服务无法启动的数据恢复

    MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB
    的头像 发表于 04-09 11:34 662次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>——<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库文件</b>拷贝后服务无法启动的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>

    数据库数据恢复—SQL Server附加数据库提示“错误 823”的数据恢复案例

    SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份
    的头像 发表于 02-28 11:38 830次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—SQL Server附加<b class='flag-5'>数据库</b>提示“错误 823”的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—Windows无法启动MongoDB服务的数据恢复案例

    某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上
    的头像 发表于 02-13 12:44 636次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Windows无法启动<b class='flag-5'>MongoDB</b>服务的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    虚拟化数据恢复—误还原快照的数据恢复案例

    虚拟化数据恢复环境&故障: vmfs文件系统,存储的数据是SqlServer数据库及其他办公文件
    的头像 发表于 02-07 11:09 632次阅读

    MySQL数据库的安装

    MySQL数据库的安装 【一】各种数据库的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介绍
    的头像 发表于 01-14 11:25 865次阅读
    MySQL<b class='flag-5'>数据库</b>的安装

    SqlServer数据恢复—SqlServer数据库数据恢复案例

    一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer
    的头像 发表于 01-09 11:15 760次阅读
    SqlServer<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—SqlServer<b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    如何使用cmp进行数据库管理的技巧

    你在使用 cmp 命令时进行有效的数据库管理。 1. 理解 cmp 命令 cmp 命令用于比较两个文件是否在内容上完全相同。它逐字节比较文件,并在找到第一个不同的地方时停止。这对于检查数据库文
    的头像 发表于 12-17 09:31 973次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 1002次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>流程

    数据库数据恢复—ORACLE常见故障的数据恢复可行性分析

    Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件
    的头像 发表于 12-10 11:35 675次阅读