Mongodb手动切换主从服务器

原文地址:https://blog.csdn.net/qq_30831237/article/details/123912005

隐藏节点
    隐藏成员必须始终是优先级为0的成员,因此不能成为主节点。isMaster()方法不显示隐藏成员,然而,隐藏成员可以在选举中投票
    设置隐藏节点
    cfg = rs.conf()
    cfg.members[0].priority = 0
    cfg.members[0].hidden = true
    rs.reconfig(cfg)
    设置完毕后,该从节点的优先级将变为 0 来防止其升职为主节点,同时其也是对应用程序不可见的。在其他节点上执行 isMaster 或是 db.isMaster() 将不会显示隐藏节点。
延迟节点
    设置延迟节点
    cfg = rs.conf()
    cfg.members[0].priority = 0
    cfg.members[0].hidden = true
    cfg.members[0].slaveDelay = 3600
    rs.reconfig(cfg)
PRIMARY
    人工干预主从:Primary、Second
     1、通过修改权重来改变主从关系
                    PRIMARY> config=rs.conf()                //查看当前配置,存入config变量中。
                    PRIMARY> config.members[0].priority =5     //修改config变量,第三组成员的优先级为3.   [id]值
                    PRIMARY> rs.reconfig(config)             //配置生效 
     2、通过降级来改变主从关系
                    rs.freeze(30)  //通过执行"rs.freeze(30)"命令,将端口在28011的实例“冰冻”。其中“30”的单位是秒,说明        30秒内这个实例不会参与primary的内部选举工作,即                    30秒内此实例不会变成primary角色,那么就充分利用        30秒    的时间来完成切换的工作吧
                    rs.stepDown(30)//通过执行"rs.stepDown(30)"命令将当前主库“降级”,30秒内这个实例不会把自己选为            primary角色,相当于在30秒内此实例被“降级”了。
                    总结:但是过了这个时间,将会以权重的方式选举主节点
     3、通过停用主节点 然后改变主从关系
SECOND
    禁止从升级为主我们可以将 secondary 的优先级设置为 0 来阻止其在选举中升职为 primary 
ARBITER
 
 
 
members[0]是指执行rs.config()命令,从上到下排序的值(即你看到的节点是第几个),这个值是从0开始的。比如一共有四个节点的副本集,从上到下的排序为0-1-2-3。0代表第一个;6表示优先级大小,数值越大优先级越高。

猜你喜欢

转载自blog.csdn.net/wzy0623/article/details/132055138