博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 主从和Replica Set
阅读量:4687 次
发布时间:2019-06-09

本文共 1735 字,大约阅读时间需要 5 分钟。

目前主要的MongoDB高可用架构包含:
  • 主从架构
  • Replica set副本集方式
  • sharding分片
注意:使用高可用架构后ips,qps相比单实例都会有一定程度的下降,其中rs下降不是他太明显,但是sharding下降的程度比较高。
本文不讨论sharding,在另一篇博客中单独描述了sharding的架构和搭建方式,参考:
一、主从架构
Master配置文件:
dbpath = /home/wang/mongodbDATA/masterport = 27017bind_ip = 192.168.1.100 --3.6开始mongodb默认bind本地localhostmaster = true
Slave配置文件:
dbpath = /home/wang/mongodbDATA/slaveport = 27017bind_ip = 192.168.1.101source = 192.168.1.100:27017slave = true
这样主从就搭建完毕了,很简单。
但主库宕机后备库不能自动切换,因此官方推荐使用replica set。
 
二、Replica Set
注意自动failover需要集群节点数为奇数,如下为双节点+仲裁节点的结构。
配置步骤:
1. 三节点的配置文件全部修改为如下格式:
dbpath=/mongodb/data/logpath=/mongodb/log/mongo.logpidfilepath=/mongodb/mongo.piddirectoryperdb=truelogappend=truereplSet=repport=27017oplogSize=10000fork=truenoprealloc=true
2. 在任意一个节点设置replica set
use admincfg={ _id:"rep", members:[ {_id:0,host:'192.168.20.70:27017',priority:2}, {_id:1,host:'192.168.20.71:27017',priority:1},{_id:2,host:'192.168.20.72:27017',arbiterOnly:true}] };--priority的取值范围为0-1000,值越大优先级越高,可以为小数。(一般不设为0,普通节点默认为1,仲裁节点默认为0,仲裁节点即便设置为1也会自动变成0)--如果priority设为0,那么意味着此节点永远不会变为主,但是有投票权。--修改此参数操作参见:https://docs.mongodb.com/manual/tutorial/adjust-replica-set-member-priority/index.html--关于hidden副本集参见:https://docs.mongodb.com/manual/core/replica-set-hidden-member/#replica-set-hidden-members###########初始化生效:###########rs.initiate(cfg)
3. 等待几秒后查看集群状态
rs.status()"stateStr" : "RECOVERING" --表示配置正在生效,生效后为PRIMARY/SECONDARY/ARBITER注意slave默认是不允许读写的,如果想要读,那么需要执行rs.slaveOk()
当primary宕机后,secondary自动转换为主,当primary重新启动后,又会自动切换回去。
此外关于节点的添加删除重新配置等等,强烈建议阅读官网关于replication提供的各种方法:
重配rs的步骤为:
1.rs.conf()查看之前的集群信息,集群名需要与mongo.conf中一致
2.新建cfg配置,使用rs.reconfig(cfg,{force:true})来重置rs
3.查看新的rs状态
如果以上配置失败可以更改data文件重新配置rs

转载于:https://www.cnblogs.com/leohahah/p/8865084.html

你可能感兴趣的文章
Informix IDS 11系统解决(918查验)认证指南,第 7 部分: IDS复制(7)
查看>>
解决Charles Response 中文乱码
查看>>
Spring Boot 分布式Session状态保存Redis
查看>>
Unity笔记——1.Unity3D脚本基础
查看>>
List分组 用于客服对话分组场景
查看>>
mybatis的二表联合查询
查看>>
全排列与 康托展开
查看>>
eclipse不格式化注释
查看>>
C语言结构体初始化(转载)
查看>>
系统剪切板的使用UIPasteboard
查看>>
arcgis for flex 学习笔记(一)
查看>>
Bootstrap如何禁止响应式布局 不适配
查看>>
C语言流程控制
查看>>
多线程—4种线程池
查看>>
函数(1)
查看>>
ip xfrm命令是做什么的?
查看>>
AtCoder - 2567 RGB Sequence
查看>>
谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
查看>>
Jquery的parent和parents(找到某一特定的祖先元素)
查看>>
es6 属性及常用新属性汇总
查看>>