MongoDB学习笔记(十):集群-副本集模式

保证主节点挂掉了,备节点能继续提供数据服务。Primary表示主节点,Secondary表示备节点。备节点可设置读权限,分担查询压力,但不保证实时 
 
MongoDB学习笔记(十):集群-副本集模式_第1张图片
 


范例:Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。用于投票,如果主节点挂了,剩下偶数节点时,可能投票结果无法判断选举哪个作为master 


MongoDB学习笔记(十):集群-副本集模式_第2张图片
 
案例: 
1.建立数据文件夹

1. mkdir -p /mongodb/data/master   mkdir -p /mongodb/data/slaver   mkdir -p /mongodb/data/arbiter    #三个目录分别对应主,备,仲裁节点  

2.建立配置文件

1. #master.conf  dbpath=/mongodb/data/master  logpath=/mongodb/log/master.log  pidfilepath=/mongodb/master.pid  directoryperdb=true  logappend=true  replSet=testrs  bind_ip=10.10.148.130  port=27017  oplogSize=10000  fork=true  noprealloc=true  
1. #slaver.conf  dbpath=/mongodb/data/slaver  logpath=/mongodb/log/slaver.log  pidfilepath=/mongodb/slaver.pid  directoryperdb=true  logappend=true  replSet=testrs  bind_ip=10.10.148.131  port=27017  oplogSize=10000  fork=true  noprealloc=true  
1. #arbiter.conf  dbpath=/mongodb/data/arbiter  logpath=/mongodb/log/arbiter.log  pidfilepath=/mongodb/arbiter.pid  directoryperdb=true  logappend=true  replSet=testrs  bind_ip=10.10.148.132  port=27017  oplogSize=10000  fork=true  noprealloc=true  

3.启动mongodb

1. ./monood -f master.conf  ./mongod -f slaver.conf  ./mongod -f arbiter.conf

4.配置主,备,仲裁节点

1. ./mongo 10.10.148.130:27017   #ip和port是某个节点的地址  
2. >use admin  >cfg={ _id:"testrs", members:[ {_id:0,host:'10.10.148.130:27017',priority:2}, {_id:1,host:'10.10.148.131:27017',priority:1},   {_id:2,host:'10.10.148.132:27017',arbiterOnly:true}] };  >rs.initiate(cfg)             #使配置生效  

cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。

你可能感兴趣的:(mongodb)