您的位置:首页 > 数据库 > Mongodb

MongoDB架构篇-Replica Set 副本集

2015-01-29 17:51 721 查看
Replica Sets复制(副本集):

 

几个复制品选举成主数据库

 

replicaset  数据复制, 副本集

 流程原理:



 











 

文件夹replication下

 

 

mongod--replSet rs1(小组1)--keyFile=e:/key1(密钥) --port 20001--dbpath=F:\DingSai\Mongodb\replication\rs1\data --logpath=F:\DingSai\Mongodb\replication\rs1\logs\mongodb.log

 

 

开rs1

mongod--replSet rs1  --port 20001--dbpath=F:\DingSai\Mongodb\replication\rs1\data --logpath=F:\DingSai\Mongodb\replication\rs1\logs\mongodb.log

 

 

开rs2

mongod--replSetrs1  --port 20002--dbpath=F:\DingSai\Mongodb\replication\rs2\data --logpath=F:\DingSai\Mongodb\replication\rs2\logs\mongodb.log

 

 

 

开rs3

mongod--replSetrs1  --port 20003--dbpath=F:\DingSai\Mongodb\replication\rs3\data --logpath=F:\DingSai\Mongodb\replication\rs3\logs\mongodb.log

 

 

 

 

 

 

登录rs1  mongo localhost:20001

 

 

 

 

 

 

--编写配置清单

config_rs1={_id:"rs1",members:[{_id:0,host:"localhost:20001",priority:1},{_id:1,host:"localhost:20002",priority:2}]}

 

{

        "_id" : "rs1",

        "members" : [

                {

                        "_id" : 0,

                        "host" :"localhost:20001",

                        "priority" :1

                },

                {

                        "_id" : 1,

                        "host" :"localhost:20002",

                        "priority" :2

                }

        ]

}

 


priority优先级越大,优先级越高

 

 

 

--初始化配置清单

 

 

rs.initiate(config_rs1);

 

 

 

在主服务器 priortity大的服务器插入数据

db.c1.insert({name:"user1"})

db.c1.insert({name:"user2"})

db.c1.insert({name:"user3"})

 

 

--从服务器登陆后 执行

 rs.slaveOk()--需要确认有读的权限

db.c1.find();--从服务器执行slaveOk后就可以查看。

但是从服务器不能插入数据

db.c1.insert({name:"user1"});--"errmsg": "not master"

 

 rs.status()--查看副本集状态

主服务器



从服务器:



rs.的命令官网
http://docs.mongodb.org/manual/reference/method/js-replication/
官网说明:
http://docs.mongodb.org/manual/core/replica-set-architecture-three-members/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: