设为首页 收藏本站
查看: 959|回复: 0

[经验分享] mongodb的复制集配置

[复制链接]

尚未签到

发表于 2018-10-26 09:32:13 | 显示全部楼层 |阅读模式
  什么是mongodb副本集:
  mongodb副本集是一组mongodb服务器组成的一个副本集群。集群中包含一个Primary主服务器以及若干个Secondary备份服务器或者Artiber选举服务器。Secondary会向Primary服务器同步数据,实现集群内服务器的数据备份。当Primary宕机或无法提供服务时,集群会再次选举一个新的Primary服务器,以保证服务的正常,以及数据的安全。
  配置副本集
  
  配置环境:
  Server1 : 192.168.189.129:5555
  Server2 : 192.168.189.131:5555
  Server3 : 192.168.189.132:5555
  一:下载,安装mongodb。
#cd /usr/local/src  
#wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.2.2.tgz
  
#tar -zxvf mongodb-linux-x86_64-2.2.2.tgz
  
#mv mongodb-linux-x86_64-2.2.2  /usr/local/mongodb
  创建数据库目录与日志目录
server1:  
     #mkdir -p /data/mongodb/db1/
  
     #mkdir -p /usr/local/mongodb/logs/
  
Server2:
  
     #mkdir -p /data/mongodb/db2/
  
     #mkdir -p /usr/local/mongodb/logs/
  二:创建,配置mongodb.conf。
#cd /usr/local/mongodb/  

  
Server1:
  
#vi mongodb.conf
  
port = 5555
  
dbpath = /data/mongodb/db1/
  
logpath = /usr/local/mongodb/logs/m1.log
  
rest = true
  
fork = true
  
replSet = cmhdbset/192.168.189.129:5555,192.168.189.131:5555    //配置副本集集群
  
logappend = true
  
quiet = true
  
journal = true
  

  
Server2:
  
#vi mongodb.conf
  
port = 5555
  
dbpath =  /data/mongodb/db2/
  
logpath = /usr/local/mongodb/logs/m2.log
  
rest = true
  
fork = true
  
replSet = cmhdbset/192.168.189.129:5555,192.168.189.131:5555
  
logappend = true
  
quiet = true
  
journal = true
  三:启动mongodb,观察mongodb副本集状态。
  依次启动server1,server2的mongodb:
#/usr/local/mongodb/bin/mongod –f /usr/local/mongodb/mongodb.conf  查看日志,发现无法连接副本集:
#tail –f /usr/local/mongodb/logs/m1.log  
Mon Jul 29 16:48:53 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
  原因是还未初始化副本集,所以无法连接,因此需要初始化副本集。
  在server1上使用客户端脚本连接mongodb,并初始化副本集,初始化命令如下:
#db.runCommand({"replSetInitiate" : { "_id" : "cmhdbset" ,"members" : [ { "_id" : 1, "host" : "192.168.189.129:5555"},{ "_id" : 2, "host" : "192.168.189.131:5555"}]}})  操作如下图:
DSC0000.jpg

  查看副本集节点状态
DSC0001.jpg

  可以看到Server1已经被选举为“Primary”活跃节点,Server2成为“Secondary”备份节点。
  四:增加mongodb副本集节点。
  这时可以把Server3增加到cmhdbset副本集中。
  首先安装mongodb,参考第一步。
  创建并配置mongodb.conf:
#vi /usr/local/mongodb/mongodb.conf  
port = 5555
  
dbpath = /home/data/mongodb/db3/
  
logpath = /home/usr/local/mongodb/logs/m3.log
  
rest = true
  
fork = true
  
replSet = cmhdbset/192.168.189.129:5555,192.168.189.131:5555 //添加已有的集群成员即可
  
logappend = true
  
quiet = true
  
journal = true
  开启server3的mongodb:
#/usr/local/mongodb/bin/mongod –f /usr/local/mongodb/mongodb.conf  查看日志发现server3无法连接副本集:
DSC0002.jpg

  这是因为副本集中还没有server3的信息,需要在Primary节点上添加Server3节点信息:
DSC0003.jpg

  查看server3日志,现在server3已经加入副本集,状态为Secondary:
DSC0004.jpg

  查看副本集状态,看到已经有了server3的信息,并且状态为Secondary:
DSC0005.jpg

  五:删除已有节点
  登陆Primary节点,删除Server3节点:
DSC0006.jpg

  查看副本集信息,Server3节点已经移除掉了:
DSC0007.jpg

  登陆Server3的mongodb,发现提示符变为”removed”:
DSC0008.jpg

  ==============================================================================
  注:默认情况下,Secendary结点不能读写,需要设置了rs.slaveOk()后,才能进行读操作。
  注:删除和添加副本集节点操作只能在Primary活跃节点进行。并且当前的活跃节点无法被删除。
  注:添加一个仲裁节点:primary>rs.addArb("host:port")
  仲裁节点只参与投票,不参与选举。
DSC0009.jpg

  副本集节点优先级配置:
  在副本集中配置节点的优先级,可以使之按照我们的想法,来决定由哪台服务器担任Primay节点。
  设置Server1的优先级参数priority=20(默认为1,范围1-100):
DSC00010.jpg

  查看结点配置,Server1的priority参数已经被设置为20:
DSC00011.jpg

  配置完以后,Server1会被选举为primary节点。
  若想配置Secondary-Only模式,只要把服务器的priority设置为0即可。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626603-1-1.html 上篇帖子: 网站超链接点击情况保存到mongodb 下篇帖子: mongodb 嵌套查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表