我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mongodb副本集

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mongodb副本集

       其实mongodb也可以做主从机制,mongodb一主一从类似mysql,但是slave在架构中为只读,并且主机宕机后从不能自动切换为主。现在官方已经不推荐使用了,改用副本集。

  • 这种模式下有一个主(primary),和多个从(secondary),只读。支持给它们设置权重,当主宕掉后,权重最高的从切换为主

  • 在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据l再此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server


1.MongoDB副本集搭建

三台机器:192.168.1.100(primary)  192.168.1.101(secondary)   192.168.1.102(secondary) 

编辑三台机器的配置文件/etc/mongod.conf,增加:

###########

replication:

##oplog大小

  oplogSizeMB: 20

##复制集名称

  replSetName: monreplset     //名字可以随意

##############

分别重启三台机器

在主上连接mongo

>use admin

>config={_id:"monreplset",members:[{_id:0,host:"192.168.1.100:27017"},{_id:1,host:"192.168.1.101:27017"},{_id:2,host:"192.168.1.102:27017"}]}

>rs.initiate(config)

>rs.add("192.168.1.101")

>rs.add("192.168.1.102")

rs.status()       //查看状态

如果两个从上的状态为"stateStr": "STARTUP", 则需要进行如下操作

>var  config={_id:"monreplset",members:[{_id:0,host:"192.168.1.100:27017"},{_id:1,host:"192.168.1.101:27017"},{_id:2,host:"192.168.1.102:27017"}]}

>rs.reconfig(config)

此时再次查看rs.status()会发现从的状态变为SECONDARY


2.MongoDB副本集测试

主上建库,建集合

>use mydb

>db.test.insert({ID:1,UserName:"123",password:"123456"})

>show dbs

从上查看

>show dbs   

若出现错误Error:listDatabasesfailed:{ "note" : "from execCommand","ok" : 0, "errmsg": "not master" },

执行>rs.slaveok()即可


3.MongoDB副本集更改权重

默认三台机器权重都为1,如果任何一个权重设置为比其他的高,则该台机器马上切换为primary角色,所以我们预设三台机器的权重分别为:100:3, 101:2, 102:1

在主上执行

cfg= rs.config()

cfg.members[0].priority= 3

cfg.members[1].priority= 2

cfg.members[2].priority= 1

rs.reconfig(cfg)

这样的话,第二个节点将会成为候选主节点。

主上执行iptables-I INPUT -p tcp--dport 27017 -j DROP禁掉27017端口的访问

这时101将变成primary成为主。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mongodb副本集

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MongoDB学习笔记:副本集

本文更新于2022-01-08,使用MongoDB 4.4.5。目录单台服务器下创建副本集多台服务器下创建副本集重新启动并连接到副本集维护副本集节点单台服务器下创建副本集确保/data/db目录存在且当前系统用户有读写权限。例如(需根据实际情况设置权限):su
MongoDB学习笔记:副本集
2019-12-08

mongodb如何更换副本集

要更换MongoDB副本集,需要遵循以下步骤:1. 添加新副本集成员:首先,在新服务器上安装MongoDB,并确保它可以连接到现有的副本集。然后,在现有副本集的Primary节点上执行`rs.add()`命令,将新服务器添加为新的副本集成员
2023-08-23

编程热搜

目录