架构:
复制集使用的异步同步方式,复制集成员直接每隔2s发送一次hearbeat(pings).当主节点与其它成员通信超时10s后,一个secondary节点将会被选举为primary节点.在新的版本中,如果存在多个secondary节点,当第一个节点被选举为primary后,其它的secondary节点将从它开始复制数据.
目标机器:
172.16.171.155 (仲裁节点)
172.16.171.156(从节点)
172.16.171.160(主节点)
1、安装mongodb
参考之前文章:http://blog.csdn.net/uevol14/article/details/52228329
2、创建复制集
1)关闭所有节点的mongod进程,加 --replSet 参数重新启动
mongod --replSet rs0 --fork --logpath /var/log/mongodb/mongod.log --dbpath /var/lib/mongo
#--fork 进程后台运行
#--logpath 加了--fork后必须配合--logpath,否则报错 BadValue: --fork has to be used with --logpath or --syslog
2)初始化复制集
在要作为主节点的主机上初始化复制集,这里选择172.16.171.160:
连接mongod服务
mongo
初始化复制集
MongoDB Enterprise > config={ _id:'myset', members:[ {_id:0,host:'172.16.171.160:27017'}, {_id:1,host:'172.16.171.155:27017'}, {_id:2,host:'172.16.171.156:27017',arbiterOnly:true}]}
{
"_id" : "myset",
"members" : [
{
"_id" : 0,
"host" : "172.16.171.160:27017"
},
{
"_id" : 1,
"host" : "172.16.171.155:27017"
},
{
"_id" : 2,
"host" : "172.16.171.156:27017",
"arbiterOnly" : true
}
]
}
MongoDB Enterprise > rs.initiate(config)
{ "ok" : 1 }
MongoDB Enterprise myset:OTHER>
3)查看初始化配置文件
MongoDB Enterprise myset:PRIMARY> rs.conf()
{
"_id" :