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

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

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

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

查看所有标签

猜你喜欢:

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

马尔可夫链:模型、算法与应用

马尔可夫链:模型、算法与应用

Wai-Ki Ching、Ximin Huang / 陈曦 / 清华大学出版社 / 2015-6 / 39

《马尔可夫链:模型、算法与应用 应用数学译丛》讲述了马尔可夫链模型在排队系统、网页重要性排名、制造系统、再制造系统、库存系统以及金融风险管理等方面的最新应用进展.全书共安排8章内容,第1章介绍马尔可夫链、隐马尔可夫模型和马尔可夫决策过程的基本理论和方法,其余7章分别介绍马尔可夫链模型在不同领域中的应用. 《马尔可夫链:模型、算法与应用 应用数学译丛》可作为自动化、工业工程、统计学、应用数学以及管理......一起来看看 《马尔可夫链:模型、算法与应用》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具