MongoDB集群上副本集(replica set)建立(2)

cfg=rs.config() #获取当前的配置
cfg.members[2].priority=0 #让_id为2的节点优先级降为0
cfg.members[2].hidden=1 #设置此节点隐藏,仅当其优先级为0时有效
rs.reconfig(cfg) #应用配置将_id为2的节点设为隐藏,使得其状态不被rs.isMaster看到,但它可以被rs.status()看到。

接着,在mongo shell插入一个文档:

for(i=0;i<1000;i++){test.coll.insert({count:i})}

db.coll.count() #测试插入文档是否成功


1000

然后检查备份节点上的情况:

new Mongo("host2:27017")
db.coll.count()
1000

说明在host2上的数据库也更新了。

然后,尝试将host1上的mongod进程宕掉,这种情况在实际生产中可能出现,查看host2和host3的情况:

在host1的bash上:

sudo bin/mongod --shutdown
killing process with pid: 15910

然后登陆host2上的mongo shell,发现提示符已经变为:setname>primary 表示host2已经变为主节点,在host2上db.coll.count()得到1000,表示备份的数据还在。

重新使用之前的集群配置文件来启动mongod -f mongo.conf ,发现提示符为setname:SECONDARY>表示其变为备份节点,在host2上用rs.isMaster()测试显示:

"setName" : "clover",
        "setVersion" : 9,
        "ismaster" : true,
        "secondary" : false,
        "hosts" : [
                "host1:27017",
                "host2:27017"
        ],
        "passives" : [
                "host3:27017"
        ],
        "primary" : "host2:27017",
        "me" : "zookeeper2:27017",<

副本集重新变为3台主机。host2仍为主节点,host3因为设置优先级为0变为消极(passives)状态,它不会被选为主节点。

更多MongoDB相关教程见以下内容

CentOS 编译安装 MongoDB与mongoDB的php扩展

CentOS 6 使用 yum 安装MongoDB及服务器端配置

Ubuntu 13.04下安装MongoDB2.4.3

MongoDB入门必读(概念与实战并重)

Ubunu 14.04下MongoDB的安装指南

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios监控MongoDB分片集群服务实战

基于CentOS 6.5操作系统搭建MongoDB服务 uxidc.com/Linux/2014-11/108900.htm

MongoDB 的详细介绍请点这里
MongoDB 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/db087417a46cf989db9b47462002ccf4.html