1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

MongoDB副本集设置节点优先级priority

背景介绍

在MongoDB副本集中,有时需要指定某些节点不可被选为主节点,或者必须从某些节点中选出主节点。你可以通过修改节点优先级实现此目的,具体操作可以参考官方文档:https://docs.mongodb.com/manual/tutorial/force-member-to-be-primary/

MongoDB副本集设置节点优先级priority

操作演示

设置节点选主优先级

(1) 查看当前副本集状态

udb-h332hu4d:PRIMARY> rs.status()

(2) 输出当前副本集配置

udb-h332hu4d:PRIMARY> cfg = rs.conf()

(3) 修改节点优先级

udb-h332hu4d:PRIMARY> cfg.members[0].priority = 2   # 修改当前primary节点优先级为2
2
udb-h332hu4d:PRIMARY> cfg.members[1].priority = 10  # 修改当前secondary节点优先级为10
10

(4) 生效优先级配置

udb-h332hu4d:PRIMARY> rs.reconfig(cfg)

从节点执行命令报错

在进行节点优先级修改之后,primary节点和secondary节点的身份可能会发生切换,此时原来的primary节点可能变成了secondary节点。那么如何在从节点执行相关查看命令呢?有以下几种方案:

(1) 基于session的,退出就失效

udb-h332hu4d:SECONDARY> db.getMongo().setSlaveOk()

(2) 临时生效

udb-h332hu4d:SECONDARY> rs.slaveOk()

(3) 永久生效,编辑用户家目录的隐藏文件.mongorc.js,在其中加入如下行即可:

rs.slaveOk()

验证修改后Primary与Secondary切换情况

在进行节点优先级修改后,如果有非Primary节点的优先级被提高到大于Primary节点的优先级,很快就会从高优先级的节点中重新选举新主节点。在修改过程中,需要注意以下几点:

  • 优先

    原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7317.html