mongodb 数据库修复指南

mongodb 数据库修复指南

原因:mongodb 数据库因为断电导致数据库损坏,服务无法启动,但是mongodb 的数据库的数据都在本地(这个是重点,docker 安装一定要挂载/data/db到宿主机)

  1. 找一台windows电脑,安装与损坏的mongodb相同版本的数据库;
  2. 将备份的损坏的mongodb的数据文件目录拷贝到windows的其他文件夹下备用;
  3. 在安装好mongodb服务上面创建一个数据库(或者直接使用客户端连接数据库,在客户端控制台使用如下命令)
use ntb;创建数据库
db.ntc.insert({hi: "helo"})  创建一个数据集合
db.ntc.stats()  查看当前创建的集合的信息,找到uri这个key(很重要)

操作步骤:

a. 将事前备份的损坏的数据文件以colletion开头的文件复制到excel表中

b. 使用mongo命令创建与colletion相同数据量的集合(集合名可以collection_数字的格式),同时使用stats查看获取创建的集合的uri一并写入到execl中形成对应的损坏的集合和创建集合的对应关系;

c. 将上一步中形成的对应的关系表,使用本地命令的方式将损坏的文件名批量更新为新创建的集合名称

d. 关闭当前windows上面的服务(一定要关闭)再把重命名后的损坏的文件集合复制到windows上的数据data目录中覆盖相同名称的集合

e. 重启mongodb服务并执行如下命令进行数据的恢复

mongod --dbpath /var/lib/mongodb --repair  /var/lib/mongodb是实际的数据库文件路径

f. 修复成功之后再执行如下的命令重启mongodb服务

mongod --dbpath /var/lib/mongodb

g. 修复成功,但是需要自己区分每个表的数据并重新建立数据库名和表名关系及索引

参考文档

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值