mongorestore 一次踩雷
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 一次踩雷的更多相关文章
- MongoDB备份(mongodump)和恢复(mongorestore)
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 1.备份数据使用下面的命令: >mongodump -h ...
- MongoDB 备份(mongodump)与恢复(mongorestore)
MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的数据量级转存的服务器 ...
- 【Nhibernate】入门 踩雷篇
总结(喜欢写在前面,记性不好老忘记解决问题时的思路): 使用框架一般不会完整的看文档,直接上来就搞,踩雷是必须的,重要的是遇到雷的时候要快速变换思路,是不是姿势不对(文件位置不对) 提高解决问题的速度 ...
- [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 ...
- MongoDB的备份(mongodump)与恢复(mongorestore)
备份: D:\mongodb2.4.3\bin>mongodump -u101.key -p123 -h 127.0.0.1:27017 -d mydb -o d:\backup 恢复: D:\ ...
- Mongodb备份(mongodump)和恢复(mongorestore)
1.备份: mongodump -d DbName -o /data/backup 2. 恢复: mongorestore -d newDB --drop data/backup/DbName/
- spring 4 升级踩雷指南
spring 4 升级踩雷指南 前言 最近,一直在为公司老项目做核心库升级工作.本来只是想升级一下 JDK8 ,却因为兼容性问题而不得不升级一些其他的库,而其他库本身依赖的一些库可能也要同步升级.这是 ...
- RobotFramework-RIDE环境搭建二:Robot Framework-RIDE安装过程以及踩雷点
前期准备工作: Python 2.7(上篇文章中已安装成功) Robot Framework-2.8.5 Robot Framework-RIDE-1.5.2.1 (测试用例的创建.运行可以在图形界面 ...
- MongoDB 备份(mongodump)与恢复(mongorestore)
MongoDB 备份(mongodump)与恢复(mongorestore) 备份:使用mongodump命令导出所有数据库到指定目录 参数说明: --host:MongoDB所在服务器IP. -- ...
随机推荐
- js-选项卡套选项卡
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- Python--随机生成指定长度的密码
在浏览别人博客时学习了random模块,手痒自我练习下,写个随机生成指定长度的密码字符串的函数,拿出来供各位参考: 废话不多说,上代码: # coding: utf-8 import random i ...
- EF学习笔记-2 EF之支持复杂类型的实现
使用过.NET的小伙伴们知道,在我们的实体模型中,除了一些简单模型外,还有一些复杂类型,如几个简单的类型组合而成的类型:而EF除了在实现基本的增删改查之外,也支持复杂类型的实现. 那么如何手动构造复杂 ...
- java面试和笔试
1.Java中异常处理机制和事件机制. 2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java. ...
- Java-String类型的参数传递问题
刚才看见一个兄弟在为Java的String传值/传引用问题困惑,翻箱倒柜找到了这篇我很久以前写的文章,发在这里,希望能对迷惑的朋友有些帮助. 提要:本文从实现原理的角度上阐述和剖析了:在Java语言中 ...
- execution表达式--小坑
之前使用的都是eclipse,今天开始复习spring了,开始接触IDEA,在复习过程中,出了点小事, 复习到AOP开发时,有半自动和全自动之说,之前我看那期视频里面没讲过全自动,我就自己再那敲Dem ...
- mysql存储过程双重循环示例
BEGIN ); DECLARE done INT DEFAULT FALSE; DECLARE cursor_rule CURSOR FOR SELECT s.id FROM d_menu_type ...
- sync.WaitGroup和sync.Once
sync.WaitGroup,顾名思义,等待一组goroutinue运行完毕.sync.WaitGroup声明后即可使用,它有如下方法: func (wg *WaitGroup) Add(delta ...
- POJ 2725
#include <iostream> #include <string> #include <algorithm> #define MAXN 400005 usi ...
- Python 百度ai身份证接口案例
调用百度Ai 完成一个学生信息录入的网页小案例 添加图片,身份证信息对号入座 官方文档中心:https://ai.baidu.com/docs#/OCR-API/7e4792c7 utils.py # ...