[Mongodb 5.0]将副本集中的Secondary节点变为Arbiter节点

前言

Arbiter节点也被成为仲裁节点,也就是用来投票用的节点。当我们不在想将副本集中的某个Secondary节点用来保存数据的时候,而是仅仅想用它在选举Primary节点时进行投票使用,那么我们就可以考虑将这个Secondary节点变为Arbiter节点。

场景

我们假设已创建了一个副本集(没创建的可参考前面的文章)如下表格所示:

PSS模式(还有PSA模式)地址别名
Secondary192.168.40.128节点1
Primary192.168.40.129节点2
Secondary192.168.40.130节点3

现在我们想让节点3变为Arbiter节点,只负责在选举Primary节点时进行投票,而不负责保存数据。

步骤

第一步:想要转换f副本集中的哪个Secondary节点为Arbiter节点,就先关闭这个节点,这里我们关闭节点3。

db.shutdownServer()

第二步:在Primary节点上执行如下命令,把节点3从副本集中删除掉 

rs.remove("192.168.40.130:27017")

删除后,可通过rs.config()在确认一下

第三步:再次启动刚才停止节点3(官网中还说要移动放数据文件夹,其实无所谓,这里就不移动了)

mongod -f /etc/mongod.conf

第四步:在Primay节点上执行命令,将节点3作为Arbiter放到副本集配置中

rs.addArb("192.168.40.130:27017")

如果执行这条命令报如下错误:
“errmsg” : “Reconfig attempted to install a config that would change the implicit default write concern. Use the setDefaultRWConcern command to set a cluster-wide write concern and try the reconfig again.”

那么现在Primary节点执行下如下命令:

db.adminCommand({
  "setDefaultRWConcern" : 1,
  "defaultWriteConcern" : {
    "w" : 2
  }
})

第五步:验证

执行rs.config(),观察节点3中的arbiterOnly属性的值,如果是true表示成功,如下图:

 此时如果我们在想Primary节点进行写入操作时,节点3将不再会同步数据了。

到此,整个设置结束。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值