但是如果想更换其他服务器为主库,就需要手动给某台服务器进行升级操作,下面我们来举例
我们手动的给某台机器升级
MongoDB主库 | 28017 | db01 |
---|---|---|
MongoDB从库 | 28018 | db02 |
MongoDB从库 | 28018 | db03 |
举例:我们来给db02提升为主库
使用rs.conf()命令可以查看权重
dba1:PRIMARY> rs.conf()
dba1:PRIMARY> rs.status()
注意此命令需要在主库执行!
举例:[1]代表id为1的库
config.members[1].priority=10
修改成功
dba1:PRIMARY> config.members[1].priority=10
dba1:PRIMARY> rs.reconfig(config)
{
"ok" : 1,
"operationTime" : Timestamp(1668248037, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1668248037, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
然后在进行查看
dba1:PRIMARY> rs.config()
可以看到权重已经变成了10
使用此条命令后数据库会重新进行选举
dba1:PRIMARY> rs.stepDown()
可以查看到主节点已经变更为id为1的库
dba1:PRIMARY> rs.status()
我们恢复的话,还是执行一遍刚才的命令
权重重新降低为1
dba1:PRIMARY> config.members[1].priority=1
dba1:PRIMARY> rs.reconfig(config)
发起重新选举
dba1:PRIMARY> rs.stepDown()
dba1:PRIMARY> rs.status()