preparing automatic repair怎么解决_mongo复制data文件迁移数据出错解决方案

abfa9d62e03eecb52b84d3f79a7f5b45.png

mongo是什么?

MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。

遇到的问题

有些人不正规备份或数据迁移,将mongo的data文件夹内的内容直接复制到另外一个mongo进行数据迁移,导致很多报错。

解决方案

题主亲身经历,下面提供解决的一系列步骤(在宝塔搭建的环境中):

(下面步骤不代表就是唯一的解决方案,有更好的方案的朋友们欢迎投稿,谢谢!在此说下,任何文件的删除操作,要有备份意识,请先对文件进行备份,数据是任何项目的重要组成部分!!)

1.将复制的data文件,移到新的mongo下面

24a9d858306df0ef48b54a1454897e0c.png

2.将data文件所有人跟权限设置跟mongo里面的目录一样

chown -R mongo data    //设置所有人
chmod -R 777 data      //设置权限

253484890f0084a929b4a541dc15a51e.png

3.启动mongo

这里启动不了,查看日志报错如下,叫我们重新对mongo进行修复

3fafce6f6fefbd0be605da876b571458.png

4.解决上面的问题,进行修复

MMD,执行修复命令,又报错

sudo mongod --repair --dbpath /www/server/mongodb/data

0b9cd2e75213efaf3ee3329a0d6d7057.png

这个里面有三个出错

(a)第一个错

3447f8eb245fdbdccf9e0e2fade77ac7.png

意思:检测到不干净的关机-/www/server/mongodb/data/mongod.lock不为空。

解决:删除data文件里面的mongod.lock文件

rm -rf mongod.lock

(b)第二个错

3d9592d265d520c531d2995769e49c41.png

意思:在/www/server/mongodb/由“wiredTiger”存储引擎创建的数据中检测到数据文件,因此将活动存储引擎设置为“wiredTiger”

解决:删除data文件里面的storage.bson文件

rm -rf storage.bson

(c)第三个错

40e7eaf4b7fd4e1718f939ab6ef7fac6.png

意思:initAndListen中出现异常:InvalidOptions:请求的选项与directoryPerDB的当前存储引擎选项冲突;您请求了false,但当前服务器存储已设置为true,无法更改,正在终止

解决:在配置文件设置directoryPerDB为false

5.继续对mongo进行修复

sudo mongod --repair --dbpath /www/server/mongodb/data

修复完成,没有出错

a34e01a240874b7b721f4cb11f420e8f.png

6.重新启动mongo

俗话说,好事多磨吧,MMD又报错了,还能怎么办,继续解决!!!

6d201e23300ae844d802bfa26724e48a.png

意思:无法读取storage.bson文件,原来刚才删除的文件重新生成,所有者不是mongo

解决:整个data文件重新改下所有者

chown -R mongo data   //在你的mongo目录下执行

7.继续启动mongo

CNM终于启动成功了

cbfcb7bfc83bc389ab840418905a6593.png

1685d7048e809e0b9739690fb6c59e41.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值