• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

[Mongodb 5.0]从Replica Set删除节点

武飞扬头像
bugs_more_more
帮助1

场景:

通过3台虚拟机构建的一个Primary-Secondary-Secondary的副本集,如下表格

PSS模式(还有PSA模式) 地址 别名
Primary 192.168.40.128 节点1
Secondary 192.168.40.129 节点2
Secondary 192.168.40.130 节点3

现在想要副本集中删除掉一个节点,例如删除掉节点3.

本章节对应于官网Remove Members from Replica Set — MongoDB Manual学新通https://www.mongodb.com/docs/manual/tutorial/remove-replica-set-member/#remove-members-from-replica-set

 要从副本集中删除掉节点有两种方式:

  • 通过rs.remove()的方式
    步骤:
    第一步:先关闭你想要删除的mongodb,关闭方式可以通过db.shutdownServer()方法
    第二步:在Primary节点上(我这是是表格中的节点1)上通过mongosh连接上到mongodb(如果不知道那个节点是Primary,随便用一个在副本集中的节点,然后通过db.hello()方法就可知道那个是Primary节点了。)

    学新通
    第三步:使用rs.remove()方法来删除掉想要移除的节点。
    学新通
    此时如果在通过rs.config()或者rs.status()或者db.hello()就看不到删除的这个节点了。
     
  • 通过rs.reconfig()的方式

    注:从mongodb4.4开始,通过rs.reconfig()的方式每次只能删除一个可以投票的节点(何为投票节点,文章最后给解释),如果想删除多个节点,那么就要多次执行rs.reconfig()方法。

    步骤:
    第一步:先关闭你想要删除的mongodb,关闭方式可以通过db.shutdownServer()方法
    第二步:在Primary节点上(我这是是表格中的节点1)上通过mongosh连接上到mongodb(如果不知道那个节点是Primary,随便用一个在副本集中的节点,然后通过db.hello()方法就可知道那个是Primary节点了。)
    第三步:通过rs.conf()方法查看想要删除的节点在配置文件中的索引位置

    学新通
    第四步:在mongosh中执行如下js,上面的配置信息赋值给变量
    cfg = rs.conf()
    第五步:通过这个变量删除配置中的要删除的节点,如下
    cfg.members.splice(2,1) #2表示要删除的192.168.40.129这个节点在members数组中的索引值
    
    学新通

    第六步:执行下面命令,重新设置配置
    rs.reconfig(cfg)
    

    学新通

     第七步:验证,在执行rs.config()方法,如果已删除的节点没有出现在里面,就成功了。
    学新通

到此从副本集中删除节点的两种方式的使用就介绍完毕了。

所谓可投票节点,就理解为副本集中的所有节点就行了,mongodb中可以设定节点是否参与选举,但是所有的节点都可以进行投票。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgacaie
系列文章
更多 icon
同类精品
更多 icon
继续加载