mongodb复制集主辅节点升降级的一次实践和注意事项

栏目: 数据库 · 发布时间: 7年前

内容简介:mongodb复制集主辅节点升降级的一次实践和注意事项

目的

  • 本文是接上篇 mongodb3.0.7扩容存储记录 ,作为补充说明完整的升级过程;
  • 解决上文遗留的问题

    上次降级回3.0的原因是部分应用的 mongodb 驱动过低,不支持mongodb3.4造成,本次升级前检查了所有应用的驱动并做了升级并通过了兼容性测试。

示例如下

假设有一个复制集有一个primary和三个sencondary组成

primary:10.0.1.32
secondary:10.0.1.31 、10.0.1.33、192.168.1.230

rs.status()显示

rs.status()
{
    ......
        "members" : [
        {
            "_id" : 0,
            "name" : "10.0.1.31:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "SECONDARY",
            ......
        },
        {
            "_id" : 1,
            "name" : "10.0.1.32:27017",
            "health" : 1,
            "state" : 5,
            "stateStr" : "PRIMARY",
            ......
        },
        {
            "_id" : 2,
            "name" : "192.168.1.230:27017",
            "health" : 1,
            "state" : 5,
            "stateStr" : "SECONDARY",
            ......
        },
        {
            "_id" : 3,
            "name" : "10.0.1.33:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            ......
        }
    ],
    "ok" : 1
}

切换目标:31升级为primary,32降级为secondary

primary:10.0.1.31
secondary:10.0.1.32 、10.0.1.33、192.168.1.230

切换步骤(均在mongodb shell上执行)

  • 1、primary上设定各个节点优先级
cfg = rs.conf()
cfg.members[0].priority = 1
cfg.members[1].priority = 0.5
cfg.members[2].priority = 0.5
cfg.members[3].priority = 0.5
rs.reconfig(cfg)
  • 2、33和230节点上执行rs.freeze(120)命令,组织其在120秒内成为primary节点
rs.freeze(120)
  • 3、primary上执行降级命令,使其120秒内不再成为primary
rs.stepDown(120)
  • 4、观察31节点发现已经成为primary
rs.status()
{
    ......
        "members" : [
        {
            "_id" : 0,
            "name" : "10.0.1.31:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            ......
        },
        {
            "_id" : 1,
            "name" : "10.0.1.32:27017",
            "health" : 1,
            "state" : 5,
            "stateStr" : "SECONDARY",
            ......
        },
        {
            "_id" : 2,
            "name" : "192.168.1.230:27017",
            "health" : 1,
            "state" : 5,
            "stateStr" : "SECONDARY",
            ......
        },
        {
            "_id" : 3,
            "name" : "10.0.1.33:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            ......
        }
    ],
    "ok" : 1
}
  • 5、升级32节点mongodb到3.4版本

    详细过程 mongodb3.0.7扩容存储记录 文中有介绍

  • 6、重新将32节点加入复制集

    从节点31上复制集配置文件过来,将bindip修改为本机32保存退出,执行systemctl start mongod即可。

注意事项

  • 设定优先级要一定要先做,否则当primary发布stepDown之后,各节点投票选举的primary不一定是期望的节点
  • 事先准备好各主机执行命令及执行顺序,每个节点开一个 shell 窗口,然后把事先准备好的命令粘贴进来按照顺序执行
  • 升降级完成之后,各连接mongodb的应用,需要重启连接新的primary,这个执行命令也要事先准备好

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业小败局

创业小败局

创业家、i黑马 / 时代华文书局 / 2014-8-1 / 42.00元

让别人的失败,成为你的成功之母! 《创业小败局》由徐小平、何伯权等六位经验丰富的业界大佬,从《创业家》五年来跟踪的数千个创业案例中,精心挑选而来。21个最具代表性的失败案例,每个案例都代表了一种最常见的失败规律,也基本上覆盖了当下中国创业浪潮中,最容易遭遇的创业陷阱。失 败是有规律的。有时候创业者的选择和 行为,必然会导致失败,但当事人却因为缺乏经验而没有察觉。比如在错误心态下引入错误的合伙......一起来看看 《创业小败局》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试