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,这个执行命令也要事先准备好

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

查看所有标签

猜你喜欢:

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

Landing Page Optimization

Landing Page Optimization

Tim Ash / Wiley Publishing / 2008-1-29 / USD 29.99

在线阅读本书 How much money are you losing because of poor landing page design? In this comprehensive, step-by-step guide, you’ll learn all the skills necessary to dramatically improve your bottom li......一起来看看 《Landing Page Optimization》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具