MongoDB的副本集配置问题

前端时间,被领导叫去配置linux上mongodb的副本集,遇到不少问题,稍微总结一下

  • 安装mongodb的问题,参考官网手册,没啥好说的

  • 遇到一个诡异的问题,每次用systemctl启动mongodb的进程时,总会在90s左右,mongodb会被关闭,看mongodb日志说启动失败,后来一顿谷歌,发现是TimeoutStartSec问题,但是尝试修改该值,始终不成功,还是对systemd的进程配置方式不熟!!
    后来没办法,采用了&的方式启动,linux还是要多学啊o(╥﹏╥)o

    mongod -f /etc/mongod.conf & //最终采用这种方式启动mongodb

    show mongod.service -p TimeoutStartSec //查看你的mongodb启动时间限制
MongoDB: Can’t initiate replica set; ‘has data already, cannot initiate set’

这个问题,是在执行rs.initiate(config)时遇到的 stackoverflow传送门

具体的问题是当执行这个命令的时候,只能主节点节点有数据,从节点不能有数据(我就是自作聪明的在从节点也建立用户,导致出现了这个问题!)

Server returned error on SASL authentication step: Authentication failed

这个问题是在当我mongostore的时候,需要加上authenticationDatabase指定认证数据库!

//完整的命令
 mongorestore  -u  xxxx -p xxx -h 127.0.0.1:27017  --authenticationDatabase 认证数据库 -d 需要恢复的数据库名字   /opt/mongodb_download/baakup
 
 //网上的参考
 --备份单个表
mongodump -u  superuser -p 123456  --port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak

--备份单个库
mongodump  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest -o  /backup/mongodb/

--备份所有库
mongodump  -u  superuser -p 123456 --authenticationDatabase admin  --port 27017 -o /root/bak 

--备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用:
mongodump -h 127.0.0.1 --port 27017   --oplog -o  /root/bak 

--同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):
mongorestore  -d swrd --oplogReplay  /home/mongo/swrdbak/swrd/

--恢复单个库:
mongorestore  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest   /backup/mongodb/

--恢复所有库:
mongorestore   -u  superuser -p 123456 --port 27017  --authenticationDatabase admin  /root/bak

--恢复单表
mongorestore -u  superuser -p 123456  --authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson
 

可以参考Mongo的备份和恢复(mongodump 和mongorestore )

mongodump与mongoexport的区别:

  • mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,可以是csv、json格式。
  • JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
  • 在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。
  • JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。

keyfile的配置

必须保证keyfile在副本集一台机器生成后,复制给副本集中其他机器,即服务器上keyfile的配置保持一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值