mongodb副本集

一.mongodb副本集是什么?

它可以说是类似mysql主从的高可用的一个mongodb集群,当主宕机后,从可以自动切换。一般有一主多从(也可以一个从)组成。可以实现异地备份、读写分离和自动故障转移。在此架构中,读写都是在主上,从只有读的权限,要实现负载均衡的功能可以手动指定读库的server。
在这里插入图片描述

二.副本集的搭建

环境说明:
所有机器都必须安装好mongodb数据库
192.168.247.160 primary
192.168.247.170 secondary
192.168.247.180 secondary
安装文档:
mongodb介绍、安装、用户管理

安装好之后,配置mongodb配置文件,三台机器除了ip不同之外都一样。其中的配置有必要说明的点如下:

bindIp: 127.0.0.1,192.168.247.180  //还需要监听网卡ip,其他机器改成自己的ip160,170

replication:   //把前面的#号去掉
  oplogSizeMB: 20   //前面注意要有两个空格,参数意义和mysql的binlog类似
  replSetName: ligenlinux   //副本集的名字

重启各个机器:

mongo
#配置副本集命令:
config={_id:"ligenlinux",members:[{_id:0,host:"192.168.247.160:27017"},{_id:1,host:"192.168.247.170:27017"},{_id:2,host:"192.168.247.180:27017"}]}

#初始化
rs.initiate(config)
#结果中有"ok" : 1表示成功了

#查看副本集状态,其中包含哪一个是primary,默认在哪台机器上配置副本集哪台就是primary。
rs.status()

三.副本集的测试

登入primary的mongodb数据库,会有标志:

ligenlinux:PRIMARY>
#在主上创建一个库和集合,看从上有没有
#主上操作
use mydb
db.acc.insert({id:1,name:"lisi",pwd:"ab"})
db.acc.find()

#在从上查看
#从上有标志ligenlinux:SECONDARY>
#需要先执行一下
rs.slaveok()
#查看库,看有没有mydb
show dbs
use mydb
show tables
#副本集更改权重模拟主宕机
#默认三台机器的权重值都为1,权重值更高为主,测试更改它们的权重值为3,2,1
#在主上操作更改权重

#查看权重
rs.config()

#更改
cfg=rs.conf()
cfg.members[0].priority=3
cfg.members[1].priority=2
cfg.members[2].priority=1

#生效
rs.reconfig(cfg)
#会发现权重为3的变成了主
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值