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()--查看副本集状态
主服务器
从服务器:
官网说明:
http://docs.mongodb.org/manual/core/replica-set-architecture-three-members/