mongodb安装完毕后,我们接下来为了使其高可用,进行副本集 Replica Sets配置。
Replica Sets 由一台PRIMARY主,多台 Secondary 从,以及一台arbiter仲裁,当然arbiter也可以多台。
其中PRIMARY 可读,可写,Secondary 只读,实时复制PRIMARY 数据,arbiter仲裁 ,只当检测到PRIMARY宕机,从新从Secondary选举出PRIMARY,并不储存数据。
安装mongodb请阅读之前的安装篇 http://www.guoguo.it/2016/02/%E6%9E%9C%E6%9E%9C-it-%E7%AC%94%E8%AE%B0-mongdb%E5%AE%89%E8%A3%85%E7%AF%87/
修改脚本,配置 keyFile ,同个集合的key需要一样。
把mongod.conf中注释的
#keyFile=
#replSet=
去掉注释
现在用三台服务器来说明
分别是
192.168.199.91
192.168.199.92
192.168.199.93
果果喜欢使用主机名连接,所以需要修改每台的/etc/hosts
vm91 192.168.199.91
vm92 192.168.199.92
vm92 192.168.199.93
三台都安装完毕,启动服务。
进入其中一台,登陆控制台
./mongo 127.0.0.1:27010
#配置副本级
config = {_id:"mongoSet",members:[{_id:0,host:'vm91:27010',priority :2},{_id:1,host:'vm92:27010',priority:1},{_id:2,host:'vm93:27010',arbiterOnly: true}]}
#vm93 设置为arbiterOnly 为仲裁,priority为优先级,大的为PRIMARY
#初始化副本集
rs.initiate(config);
#稍等片刻,可以看到控台变成 mongoSet:PRIMARY>
#查看副本集状态
rs.status();
#可以看到另外一台已经为Secondary,arbiter,如果还是 STARTUP2,说明还在同步,看数据量大小,等一会就好。
后来,副本集配置完成。