副本集

副本集,就是指一组服务器的集群,其中有一个主服务器,用于处理用户的请求;其余为备份服务器,用于保存主服务器的数据副本。如果主服务器崩溃了,会自动将一个备份服务器升级为新的主服务器,从而保证服务的进行。

创建副本集

1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建db1,db2,db3;同理在前面的logs下面创建logs1,logs2,logs3
2:在启动MongoDB服务器的时候,使用--replSet 副本集名称 选项,如:

./mongod --dbpath ../dbs/db1 --logpath ../logs/log1 --port 20001 --fork --replSet myrepl

3:然后再启动两个,端口分别为20002和20003,当然要修改相应的数据文件路径和日志路径,副本集名称跟上面一样

4:连接到副本集1,进行副本集的初始化

rs.initiate({_id:"myrepl",members:[{_id:0,host:'127.0.0.1:20001'},{_id:1,host:'127.0.0.1:20002'},{_id:3,host:'127.0.0.1:20003'}] });

修改副本集

从副本集中删除成员:rs.remove(“ip:port”)

为副本集添加成员:rs.add(“ip:port”)

rs.reconfig(config)命令,比如修改第一个成员的host名称,示例如下:

var config = rs.config();
config.members[0].host=“newHost:port”;
rs.reconfig(config);

其他配置

成员配置选项——选举仲裁者

  所谓仲裁者,就是不保存数据,专门用来投票选举主节点的副本,以解决副本个数为偶数的情况。

  设置: arbiterOnly:true ,如果用rs来加入的话,应该是:rs.addArb(“ip:port”);

  最多只能有一个仲裁者,尽量使用奇数个成员,而不是采用仲裁者

成员配置选项——优先级

  如果优先级为0的话,表示这个成员永远不能够成为主节点。

成员配置选项——隐藏成员

  对于设置为隐藏的成员,客户端不能发送请求,也不会作为复制源,通常用来做备份服务器。

  方式是:在配置这个节点的时候,设置hidden:true,只有优先级为0的成员才能被隐藏

成员配置选项——延迟备份节点

  可以通过slaveDelay设置一个延迟的备份节点,以在主节点的数据不小心被破坏过
后,能从备份中恢复回来。要求该备份节点的优先级为0。

成员配置选项——创建索引

  如果不需要备份节点与主节点拥有一样的索引,可以设置:buildIndexes:false

  这是一个永久选项,一旦指定了,就无法恢复为创建索引的正常的节点了,如果要恢复,只能删掉,重新再创建节点了,同样要求该节点的优先级为0

猜你喜欢

转载自www.cnblogs.com/xiaoliangup/p/9532883.html