但是如果想更换其他服务器为主库,就需要手动给某台服务器进行升级操作,下面我们来举例
我们手动的给某台机器升级
| MongoDB主库 | 28017 | db01 |
|---|---|---|
| MongoDB从库 | 28018 | db02 |
| MongoDB从库 | 28018 | db03 |
举例:我们来给db02提升为主库
使用rs.conf()命令可以查看权重
dba1:PRIMARY> rs.conf()

dba1:PRIMARY> rs.status()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P7fDu7cZ-1669217333385)(D:\linux笔记总结\mongoDB\MongoDB故障转移.assets\image-20221112180602093.png)]](https://1000bd.com/contentImg/2024/04/19/ca5b6fab56a4226a.png)
注意此命令需要在主库执行!
举例:[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
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bB6catDH-1669217333386)(D:\linux笔记总结\mongoDB\MongoDB故障转移.assets\image-20221112181427122.png)]](https://1000bd.com/contentImg/2024/04/19/a4b89da250960350.png)
使用此条命令后数据库会重新进行选举
dba1:PRIMARY> rs.stepDown()
可以查看到主节点已经变更为id为1的库
dba1:PRIMARY> rs.status()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-28wPGlWL-1669217333386)(D:\linux笔记总结\mongoDB\MongoDB故障转移.assets\image-20221112181726997.png)]](https://1000bd.com/contentImg/2024/04/19/c29886df94897428.png)
我们恢复的话,还是执行一遍刚才的命令
权重重新降低为1
dba1:PRIMARY> config.members[1].priority=1
dba1:PRIMARY> rs.reconfig(config)
发起重新选举
dba1:PRIMARY> rs.stepDown()
dba1:PRIMARY> rs.status()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z5JzgtBo-1669217333387)(D:\linux笔记总结\mongoDB\MongoDB故障转移.assets\image-20221112182413867.png)]](https://1000bd.com/contentImg/2024/04/19/e42db8983a5b3426.png)