189 8069 5689

3.4-MongoDB副本集搭建-创新互联

* MongoDB 副本集(repl set)介绍

10年积累的网站设计制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有大通免费网站建设让你可以放心的选择与我们合作。

早期版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主

目前已经淘汰master-slave模式,改为副本集,这种模式下有一个主(primary),和多个从(secondary),只读。支持给它们设置权重,当主宕掉后,权重高的从切换为主

在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据

再此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server

* MongoDB副本集搭建

三台机器: 172.7.15.111(primary)  172.7.15.112(secondary)   172.7.15.101(secondary)

编辑三台机器的配置文件,增加:

replication:

##oplog大小   #类似mysql的二进制日志

 oplogSizeMB: 20  #注意,此处开头有2个空格

##复制集名称

 replSetName: aminglinux  #注意,此处开头有2个空格

分别重启三台机器

* MongoDB副本集搭建

连接主,在主上运行命令mongo

>use admin

>config={_id:"aminglinux",members:[{_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]} #config类似变量

>rs.initiate(config)    #初始化,如果查看状态有了成员,下面的加载就不用执行了。

>rs.add("172.7.15.112")  #加载成员

>rs.add("172.7.15.101")

rs.status() //查看状态

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

> var config={_id:"aminglinux",members:[{_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]}

>rs.reconfig(config)

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

课后答疑:

问:1、实验中,仲裁者是谁,是不是不要仲裁者也行?

2、实验中,哪个参数是配置优先级的,如果没有,他是怎么判断将哪台机器作为primary的?

3、config={_id:"mongo1",members:[{_id:0,host:"10.10.10.60:27017"},{_id:1,host:"10.10.10.50:27017"},{_id:2,host:"10.10.10.70:27017"}]} ,这个命令里的配置生效后,有没办法进行修改?

答:1 不设置仲裁也没有关系

2 参考文档,http://www.apelearn.com/bbs/thread-9287-1-1.html

3 对config 重新赋值。

建议多使用搜索引擎尝试搜一下

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:3.4-MongoDB副本集搭建-创新互联
新闻来源:http://cdxtjz.cn/article/dgoppj.html

其他资讯