Mongodb 副本集(官方推荐)

    上篇说到了主从是不能解决自动切换的问题的,10gen团队为了解决这个问题,推出了新的模式--副本集模式。          

     副本集是在主从的基础上改进而来的,对比主从模式,副本集最大的进步是搞定了手动切换的问题—当主节点挂了,会自动选举下一个主节点




    具体如何配置呢?

1.取名
  这里给副本集取个名 ttpai
2.启动各节点

mongod --dbpath=E:\mongodb\3.2.9\slaveA\db --logpath=E:\mongodb\3.2.9\slaveA\log\log_slaveA.txt --logappend --port=27018 --replSet=ttpai
mongod --dbpath=E:\mongodb\3.2.9\slaveB\db --logpath=E:\mongodb\3.2.9\slaveB\log\log_slaveB.txt --logappend --port=27019 --replSet=ttpai
mongod --dbpath=E:\mongodb\3.2.9\slaveC\db --logpath=E:\mongodb\3.2.9\slaveC\log\log_slaveC.txt --logappend --port=27020 --replSet=ttpai
mongod --dbpath=E:\mongodb\3.2.9\slaveD\db --logpath=E:\mongodb\3.2.9\slaveD\log\log_slaveD.txt --logappend --port=27021 --replSet=ttpai
mongod --dbpath=E:\mongodb\3.2.9\mongodb\db --logpath=E:\mongodb\3.2.9\mongodb\log\log.txt --logappend --port=27017 --replSet=ttpai
3.初始化副本集

use admin;
db.runCommand(
 {
 "replSetInitiate":{
   "_id":"ttpai",
   "members":[
     {"_id":1,"host":"127.0.0.1:27017"},
	 {"_id":2,"host":"127.0.0.1:27018"},
	 {"_id":3,"host":"127.0.0.1:27019"}
   ]
   }
 }
);

初始化成功后,可以在log文件中查看具体是哪个成为主(primary),哪个成为子节点(secondary)
初始化成功后,加入成员rs.add("ip:port"); 比如:rs.add("127.0.0.1:27020");

4.增加仲裁节点

use admin;
rs.addArb("127.0.0.1:27020");


查看集群的服务器状态
rs.status();
一个复制集中最多12个副本集节点,但最多只有7个投票成员(包括primary),其余为非投票成员(Non-Voting Members)。
非投票成员是复制集中数据的备份副本,不参与投票,但可以被投票或成为主节点。


    副本集解决了自动选举的问题,但是,当我们的数据量非常大,到了TB的时候,一个机器已经不能负载了,那能怎么处理呢?



posted @ 2017-11-14 09:28  Bug开发攻城狮  阅读(153)  评论(0编辑  收藏  举报