mongo副本集

replication sets

1.启动3个实例,他们3个属于同一个复制集,声明属于哪一个复制集
./mongod --dbpath=/mongodb/data1 --logpath=/mongodb/log/d1.log --fork --port 27017 --replSet rsjty
./mongod --dbpath=/mongodb/data2 --logpath=/mongodb/log/d2.log --fork --port 27018 --replSet rsjty
./mongod --dbpath=/mongodb/data3 --logpath=/mongodb/log/d3.log --fork --port 27019 --replSet rsjty

2.配置
var rsconfig={

_id:"rsjty",
members:[
{_id:0,
host:"127.0.0.1:27017"},
{_id:1,
host:"127.0.0.1:27018"},
{_id:2,
host:"127.0.0.1:27019"}

]
}

3.根据配置做replication set的初始化
rs.initiate(rsconfig)
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1646197076, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1646197076, 1)

通过rs.stats()可以查看状态
配置好之后会27017为primary ,18、19为secondary状态

4.删除节点
rs.remove("127.0.0.1:27019")
rs.stats() 可以查看节点数量

5.添加节点;
rs.add("127.0.0.1:27019")
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1646197632, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1646197632, 1)
}

5.连接secondary查看数据,slave默认不允许读写,可以执行rs.slaveok()或者rs.secondaryok()
WARNING: slaveOk() is deprecated and may be removed in the next major release. Please use secondaryOk() instead

6.primary 角色shutdown ,执行db.shutdownServer()
rsjty:PRIMARY> db.shutdownServer()
server should be down...

27018 跟27019会自动选举上来一个作为住,

 

posted @ 2022-04-10 08:29  红丿领巾  阅读(127)  评论(0)    收藏  举报