MongoDB--架构搭建(主从副本集)之副本集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB--架构搭建(主从副本集)之副本集相关的知识,希望对你有一定的参考价值。

技术分享


 

  • 任何时间点只有一个活跃节点,其他为备份节点,当活跃节点泵机,将会通过选举规则,从备选节点选一个当活跃节点,当泵机的节点恢复之后,则变为备用节点。
  • 节点类型

 

stabdard:常规节点,存储完整数据,参与投票,有可能成为活跃节点

passive:投票节点,存储完整数据备份,不参与投票,不能成为活跃节点

arbiter:仲裁节点,不存数据,参与投票,不能成为活跃节点

 

  • 选举规则:根据节点的优先权(数字0-1000包含1000)进行从大到小排序(0为不能变成活跃节点),如果优先权相同,则判断节点的数据新旧程度,最新的节点成为活跃节点,注意事项:如果备份节点最新的数据是3秒前同步的,则成为活跃节点时,则变成备份节点的数据为最新,其他的节点(包括原来活跃节点)的数据进行回滚,然后与当前活跃点进行同步。同步之前,其他节点不能成为活跃节点的候选者

 


  • 环境搭建,建立文件目录 MS\Set1\db、log、配置文件    MS\Set2\db、log、配置文件    MS\Set2\db、log、配置文件

 

1、配置文件如下:

实例1

dbpath=D:\MSset\Set1\db  

logpath=D:\MSset\Set1\s1.log   

directoryperdb=true  

logappend=true  

replSet=testrs/127.0.0.1:28882 

port=28881  

oplogSize=10000   


实例2

dbpath=D:\MSset\Set2\db  

logpath=D:\MSset\Set2\s2.log   

directoryperdb=true  

logappend=true  

replSet=testrs/127.0.0.1:28881 

port=28882  

oplogSize=10000   


实例3

dbpath=D:\MSset\Set3\db  

logpath=D:\MSset\Set3\s3.log   

directoryperdb=true  

logappend=true  

replSet=testrs/127.0.0.1:28882 (配置文件指定replSet为副本集群的名称与关联的对应IP,可以只关联一个,开始之后Mongo可以自动感应集群其他机器)

port=28883  

oplogSize=10000   


2、使用mongod命令 启动实例服务。mongod --config D:\MSset\Set1\conf.conf(后面2个实例启动命令于此雷同)

3、使用mongo 命令进行登录其中一个实例, mongo 127.0.0.1:28882

因为使用配置文件只是做了物理关联,需要手动的执行命令将集群串起来,此时登录服务器是不能做读、写操作的,

需要执行命令,db.getMongo().setSlaveOk()之后获得读写权限,然后执行命令,将Mongo各个实例串联起来

 

db.runCommand({
"replSetInitiate":{
"_id":"testrs",
"members":[
{
"_id":1,
"host":"127.0.0.1:28881"
},
{
"_id":2,
"host":"127.0.0.1:28882"
},
{
"_id":3,
"host":"127.0.0.1:28883"
}
]
}
})

 

 

技术分享


项目文件:

http://pan.baidu.com/s/1o8lwcUA



























以上是关于MongoDB--架构搭建(主从副本集)之副本集的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb集群架构之副本集

Web架构之路:MongoDB集群及高可用实践

MongoDB 集群搭建(主从复制副本及)

mongodb学习之:副本集

MongoDB之主从复制和副本集

Mongodb集群之副本集