1、在做mongodb备份后,研发突然有个需求说先看一下昨天备份里面的数据,进行一下核实。因为那部分数据今天已经删除,由于使用---gzip、--archive做的备份,所以必须导入到同名的数据库里面。只能重新启动一个临时的库来进行数据恢复的工作。好了,接下来就配置了一个新的mongodb来进行备份:

[root@nightly etc]# mongorestore --host 127.0.0.1:27019 -d saturn --gzip --archive=/data/mbd/saturn_2018-02-01_23.gz
2018-02-02T10:38:51.868+0800 Failed: no reachable servers

很尴尬包错了,命令参数是正确的,接下来怀疑服务停了?排查服务的状态。发现服务正常运行呢。于是尝试连接:

[root@nightly etc]# mongo --port 27019
MongoDB shell version: 3.2.1
connecting to: 127.0.0.1:27019/test
Server has startup warnings:

连接是正常的,证明服务是正常的,为什么报错说Failed: no reachable servers,无可访问的服务。只能去排查日志:

2018-02-02T10:33:20.332+0800 I REPL     [initandlisten] Did not find local voted for document at startup;  NoMatchingDocument Did not find replica set lastVote document in local.replset.election
2018-02-02T10:33:20.332+0800 I REPL     [initandlisten] Did not find local replica set configuration document at startup;  NoMatchingDocument Did not find replica set configuration document in local.system.replset

2018-02-02T10:38:48.860+0800 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:51092 #6 (1 connection now open)
2018-02-02T10:38:51.872+0800 I NETWORK  [conn6] end connection 127.0.0.1:51092 (0 connections now open)

原来是设置了replset,而没有进行replset的配置。果断去配置文件里面注释掉:

#replication:
#  replSetName: rs0

重启服务,再次执行mongorestore就没问题了。

2、最近有一次恢复备份的需求,于是就用之前的备份文件进行恢复,按正常流程走,发现其中一个collection总是报数据重复,没有办法创建索引。备份应该是没有问题的,因为之前是恢复过的。不确定问题具体处在哪里?由于比较捉鸡

于是采取临时解决方案,备份整个库的时候将那个有问题的collection排除在外,然后单独进行备份:

mongodump -u hqms -p hqms123 -h 10.10.5.18:27017 -d saturn --excludeCollection=likereviews --gzip --archive=./saturn.gz
mongodump -u hqms -p hqms123 -h 10.10.5.18:27017 -d saturn -c likereviews -o /data/

然后在进行恢复:

nohup mongorestore --host 127.0.0.1:27017 -d saturn --gzip --drop --archive=/data/saturn.gz &
mongorestore -h 127.0.0.1:27017 -d saturn -c likereviews /data/saturn/likereviews.bson

至此,不能倒入数据的问题解决了,但是还没有弄清楚为什么那样会导致数据重复,可能是复合唯一索引导致的吧?还需要进一步研究。

写在最后:

--------数据不易,且用且谨慎,端口、库名操作前要多确认!!!!!!!!!

mongorestore 一次踩雷的更多相关文章

  1. MongoDB备份(mongodump)和恢复(mongorestore)

    MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 1.备份数据使用下面的命令: >mongodump -h ...

  2. MongoDB 备份(mongodump)与恢复(mongorestore)

    MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的数据量级转存的服务器 ...

  3. 【Nhibernate】入门 踩雷篇

    总结(喜欢写在前面,记性不好老忘记解决问题时的思路): 使用框架一般不会完整的看文档,直接上来就搞,踩雷是必须的,重要的是遇到雷的时候要快速变换思路,是不是姿势不对(文件位置不对) 提高解决问题的速度 ...

  4. [Mongo] error inserting documents: BSONObj size is invalid (mongoimport mongorestore 数据备份恢复)

    解决办法如下, ./mongoimport -port 6066 -d xxx -c xxx --batchSize=10 /root/mong_data/test/xxx 原因转自 http://b ...

  5. MongoDB的备份(mongodump)与恢复(mongorestore)

    备份: D:\mongodb2.4.3\bin>mongodump -u101.key -p123 -h 127.0.0.1:27017 -d mydb -o d:\backup 恢复: D:\ ...

  6. Mongodb备份(mongodump)和恢复(mongorestore)

    1.备份: mongodump -d DbName -o /data/backup 2. 恢复: mongorestore -d newDB --drop data/backup/DbName/

  7. spring 4 升级踩雷指南

    spring 4 升级踩雷指南 前言 最近,一直在为公司老项目做核心库升级工作.本来只是想升级一下 JDK8 ,却因为兼容性问题而不得不升级一些其他的库,而其他库本身依赖的一些库可能也要同步升级.这是 ...

  8. RobotFramework-RIDE环境搭建二:Robot Framework-RIDE安装过程以及踩雷点

    前期准备工作: Python 2.7(上篇文章中已安装成功) Robot Framework-2.8.5 Robot Framework-RIDE-1.5.2.1 (测试用例的创建.运行可以在图形界面 ...

  9. MongoDB 备份(mongodump)与恢复(mongorestore)

    MongoDB  备份(mongodump)与恢复(mongorestore) 备份:使用mongodump命令导出所有数据库到指定目录 参数说明: --host:MongoDB所在服务器IP. -- ...

随机推荐

  1. hdu 2642

    这题应该就是标准的二维树状数组,应该没什么难度 处理一下x,y等于0的情况就过了 #include <iostream> #include <cstdio> #include ...

  2. hdu 1541

    因为y的输入是从小到大,所以不用考虑y坐标的问题 只考虑x坐标就行 还有个小细节就是0<=x,y,<=32000  x和y取0的时候树状数组处理不到 x++就行了 #include < ...

  3. PHP后台评论 接口

    /** * 添加评论 * content 评论内容 * addtime 评论时间 * uid 评论作品 */ public function padd(){ $param=input('param.' ...

  4. ES版本控制

    版本控制 ElasticSearch采用了乐观锁来保证数据的一致性,也就是说,当用户对document进行操作时,并不需要对该doucument作加锁和解锁的操作,只需要指定要操作的版本即可.当版本号 ...

  5. 距离LCA离线算法Tarjan + dfs + 并查集

    距离B - Distance in the Tree 还是普通的LCA但是要求的是两个节点之间的距离,学到了一些 一开始我想用带权并查集进行优化,但是LCA合并的过程晚于离线计算的过程,所以路径长度会 ...

  6. 如何处理由Dll缺失造成的程序直接崩溃的问题。

    问题描述:在开发一个上位机程序时(C#.winform),使用到了Kvaser的SDK,而这个SDK是基于对应的Kvaser驱动开发的.当前PC如果没有装Kvaser驱动, 程序启动时,会直接奔溃.调 ...

  7. scikit-FEM

    from skfem import * m = MeshTri() m.refine(4) e = ElementTriP1() basis = InteriorBasis(m, e) @biline ...

  8. Swift3 倒计时按钮扩展

    extension UIButton{ func overrideSelf(){ self.setTitle("验证码", for: .normal) self.titleLabe ...

  9. DXP 板层

    一)DXP-设置板层(D+K )在PCB编辑 Design->Layer Stack Manager(层管理) 1)快捷命令 D + K   进入么多层置管理器 2.鼠标右键 TopLayer- ...

  10. AEAI Portal 权限体系说明

    1.概述 在数通畅联的产品体系中,AEAI Portal毫无疑问的占据了很重要的地位,在这里我们将通过参考Portal样例,讲述一下AEAI Portal权限体系的控制方法.在Portal使用过程中, ...