首页 > 数据库 >【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例

【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例

时间:2022-12-06 12:01:18浏览次数:43  
标签:数据恢复 MongoDB 数据库 wt 集合 数据

关于MongoDB数据库:


MongoDB数据库存储方式是将文档存储在集合之中,而不是像Oracle、MySQL一样的关系型数据库。


MongoDB数据库是开源数据库,也提供具有附加功能的商业版本。


MongoDB中的数据是以键值对(key-value pairs)的形式显示的,数据库受到的约束更少。对于具有快速增长或其他变化需求的数据来说,使用MongoDB数据库是非常有利的。如下图所示,MongoDB数据库提供了预定义结构,用户可以按需采用MongoDB数据库预定义的结构。


MongoDB数据库包含了以“顺次存放”的方式填充的文档集合,这些文档本身包含了各种字段和信息类型,能够存储的内容和数据量是极其丰富的。


MongoDB数据库的安全特性:基于角色的访问控制、身份验证、授权和审核、安全传输层(TLS)和SSL协议等。


作为文档数据库,MongoDB数据库并不限制存储数据的体量和类型,因此适合大数据的应用环境,适合基于云的服务。得益于水平可扩展能力、与云服务的敏捷性结合,MongoDB数据库不但能够减少开发者的工作量,简化业务与项目的扩展流程,还能够提供高可用性和数据的快速恢复。不过,MongoDB在数据的可靠性、一致性、以及安全性等方面不如MySQL。


MongoDB数据库数据恢复案例:

MongoDB数据库故障&初检:

某公司一台MongoDB数据库由于业务需要进行数据迁移,迁移后出现错误提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”


【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例_MongoDB数据库数据恢复


北亚数据恢复工程师检查了故障MongoDB数据库环境及底层数据,发现故障MongoDB数据库在迁移过程中丢失了_mdb_catalog.wt文件,所以启动数据库报错。


MongoDB数据库数据恢复过程:

1、恢复MongoDB数据库丢失的数据需要在底层数据中找到丢失的_mdb_catalog.wt文件,对底层数据进行多次扫描后发现该文件已经被覆盖。

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


【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例_数据恢复_02


3、借助编译后的wt工具对故障MongoDB数据库集合文件内所有数据清洗回写,读取数据结果并写入到文件中。

4、创建一个全新的MongoDB数据库,创建相应数据量的集合,将文件逐一写入集合中,查询数据集并重建索引信息。

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


【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例_数据恢复_03

【数据库数据恢复】MongoDB数据库无法启动服务的数据恢复案例_MongoDB数据库数据恢复_04

6、协助用户对全部集合进行索引重建之后,用户对数据库整体进行查询验证,发现数据无误,此次数据恢复完成。

标签:数据恢复,MongoDB,数据库,wt,集合,数据
From: https://blog.51cto.com/sun510/5915608

相关文章

  • 用户密码在后台数据库中加密存储方式
    总的来讲,目前公认比较安全的存储密码方式是PBKDF2,BCrypt或SCrypt算法产生的密码。历史上密码加密存储经历了如下几个阶段:单向hash(MD5)做单向的hash加密,以MD5和sha......
  • Android实验十——使用SQLite数据库存储数据
    一、实验要求和目的掌握SQLite数据库的操作方法;掌握SQLiteOpenHelper类的使用。掌握Lsitview的使用。二、实验环境部署有AndroidStudio和AndroidSDK的主机;建议......
  • MongoDB Compass SQL语句
    MongoDBCompassSQL语句MongoDBCompass是MongoDB的一个图形管理的数据库管理系统,对于新手可以快速上手,所见即所得。操作数据内容:{"id":1001,"name":"ZhangSan","age"......
  • 糟糕,数据库异常不可用怎么办?
    摘要:糟糕,数据库异常不可用怎么办?挺着急的,在线等。本文分享自华为云社区《糟糕,数据库异常不可用怎么办?》,作者:GaussDB数据库。随着数字化转型的加速,数据量爆发式增长,用户......
  • 使用java将数据库表导出为Excel表
    文章目录​​1、建立数据库表的实体类​​​​2、通过JDBC查询数据库表中的数据​​​​3、导入Excel表操作依赖包​​​​4、将实体列表转化为HSSFWorkbook工作簿对象​​......
  • 黑白群晖存储空间损毁/Btrfs文件系统损坏数据恢复教程
    一、起因:更换服务器配件导致RAID1其中一个硬盘损坏,提示我硬盘损坏,日志显示I/O错误;但是换硬盘后,还是提示存储空间已损毁; 二、症状表现:储存空间损毁,RAID状态正常,硬盘......
  • Flask数据库操作
    一对多fromextsimportdb#种类模型classCategroy(db.Model):id=db.Column(db.Integer,primary_key=True,autoincrement=True,comment='分类ID')name=......
  • 复制数据库两种方式 第一种 把备份集复制到目标数据库
    https://docs.oracle.com/database/121/BRADV/rcmdupdb.htm#BRADV010在源库生成一个备份,并复制到目标机器。rmantarget/RMAN>backupdatabaseincludecurrentcontro......
  • 业务流程 | 前端 =》 后端 =〉 数据库 (待补充)
    关键词:CSR前=》C=〉S=》R=〉S=》C=〉前dtoboentityentity、bo、vo、po、dto、pojo如何理解和区分?-简书(jianshu.com)......
  • 数据库授权用户,允许指定网段可以连接mysql
    数据库授权用户,允许192.168.100.0/24网段可以连接mysql1.访问数据库#主机测试[root@node1~]#mysql-uroot-pmysql>showdatabases;+--------------------+|Da......