MongoDB版本升级指南

2023-10-27

原文:
MongoDBhttp://t.zoukankan.com/realcp1018-p-15532868.html

官方文档提供了版本升级的说明,本文只介绍3.0==>3.2==>3.4==>3.6==>4.0==>4.2之间的升级文档,其他版本之间的暂不添加,可自行到官网搜索。

注意:MongoDB的升级路径必须是按偶数版本循序渐进的(偶数版本一般是稳定版本)。不能直接跨偶数版本的由3.2升级至3.6或者3.4升级至4.0。
一、3.2==>3.4
Upgrade a Standalone to 3.4 — MongoDB Manual
Upgrade a Replica Set to 3.4 — MongoDB Manual
Upgrade a Sharded Cluster to 3.4 — MongoDB Manual
Downgrade 3.4 Standalone to 3.2 — MongoDB Manual
Downgrade 3.4 Replica Set to 3.2 — MongoDB Manual
Downgrade 3.4 Sharded Cluster to 3.2 — MongoDB Manual
二、3.4==>3.6

Upgrade a Standalone to 3.6 — MongoDB Manual
Upgrade a Replica Set to 3.6 — MongoDB Manual
Upgrade a Sharded Cluster to 3.6 — MongoDB Manual
Downgrade 3.6 Standalone to 3.4 — MongoDB Manual
Downgrade 3.6 Replica Set to 3.4 — MongoDB Manual
Downgrade 3.6 Sharded Cluster to 3.4 — MongoDB Manual
三、3.6==>4.0

Upgrade a Standalone to 4.0 — MongoDB Manual
Upgrade a Replica Set to 4.0 — MongoDB Manual
Upgrade a Sharded Cluster to 4.0 — MongoDB Manual
Downgrade 4.0 Standalone to 3.6 — MongoDB Manual
Downgrade 4.0 Replica Set to 3.6 — MongoDB Manual
Downgrade 4.0 Sharded Cluster to 3.6 — MongoDB Manual
四、4.0==>4.2
Upgrade a Standalone to 4.2 — MongoDB Manual
Upgrade a Replica Set to 4.2 — MongoDB Manual
Upgrade a Sharded Cluster to 4.2 — MongoDB Manual
Downgrade 4.2 Standalone to 4.0 — MongoDB Manual
Downgrade 4.2 Replica Set to 4.0 — MongoDB Manual
Downgrade 4.2 Sharded Cluster to 4.0 — MongoDB Manual
五、示例升级流程:
鉴于文档和场景较多,只里只选一个3.4ReplicaSet升级至3.6ReplicaSet的文档做解释,不通版本的副本集升级大同小异,查看各个版本的升级文档即可;分片集的升级则需要细看升级文档,官方提示:升级之前要做到对升级文档了熟于心!!!

5.1 升级前的checklist

  1. 确保未跨偶数版本升级,即3.4只能升级到3.6

  2. 确保应用使用的mongodb驱动兼容了.6版本

    通过Start Developing with MongoDB — MongoDB Drivers来查看各语言的mongo驱动。

  3. 查看3.6的兼容性更改,确保你的应用和服务部署与3.6版本兼容,文档地址:Compatibility Changes in MongoDB 3.6 — MongoDB Manual

    简单的看了一眼第一个localhost binding需要注意,3.6以后为安全起见mongodb默认绑定到localhost地址,这样会禁止外部连接访问,需要你设置为绑定本地网卡外部IP地址,同时建议开启权限认证,确保安全。

    然后配置文件中有些配置项被移除了,需要看下自己用没用,用了的也一并提前移除,否则会导致实例起不来。至于查询语句的差异则可以不用重视。

net.http.enabled
net.http.JSONPEnabled
net.http.port
net.http.RESTInterfaceEnabled
httpinterface
nohttpinterface
jsonp
rest
4. 确保没有Initial Sync在跑

即确保没有其他secondary在做全量同步(一般新增secondary节点或者secondary节点数据目录被清空时会触发initial sync)
  1. 3.6后新增read concern=majority选项

    此配置项确保数据被多数节点同步后才会读取到数据,一般使用默认的local配置项即可,无需特意修改。

5.2 升级前的准备

  1. 确保所有节点的featureCompatibilityVersion参数设置正确,查询和更改语句如下:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
db.adminCommand( { setFeatureCompatibilityVersion: “3.4” } )
2. 确保没有副本集节点处于ROLLBACK or RECOVERING状态。

  1. 在要升级的节点安装3.6版本的mongodb。

5.3 升级流程

  1. 关闭3.4版本的实例(如果是primary,当然要先stepdown啦),然后使用3.6的二进制文件替换3.4版本的。

    这里要注意,如果单机多实例部署且公用二进制文件,则需要确认是否一并升级所有集群,如果否那么先把其他节点迁走。如果不共用二进制文件那么替换自己的二进制文件即可。

  2. 依次替换所有节点的二进制文件。

  3. 设置版本兼容性为3.6,primary节点执行,可重试(幂等操作)。

db.adminCommand( { setFeatureCompatibilityVersion: “3.6” } )
升级完毕。

注意事项:

mongodb的二进制安装包是tgz包,替换掉原有二进制包即可,也可以把conf安装配置文档复制到最新的二进制文件夹中,启动的时候引用新安装包即可

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB版本升级指南 的相关文章

随机推荐

  • python笔记9--socket初步使用

    python笔记9 socket初步使用 1 介绍 2 源码案例 2 1 tcp c s 案例 2 2 udp c s 案例 3 说明 最近需要写个c s小应用 因此看了下socket编程 把学习的笔记贴在此处以便于后续查阅 1 介绍 本文
  • Mysql服务的安装

    本文适用于新手 小白 而且专业术语不到位 本文内容可能无法解决教程外其他问题 望多包涵 多图警告 此教程适用于windows系统 教程流程 安装时 1 下载安装包 这个是下载链接 MySQLhttps www mysql com 打开界面后
  • ubuntu连接mysql命令_远程服务器 ubuntu 安装 mysql 及连接使用

    远程服务器 ubuntu 安装 mysql 及连接使用 MySQL是最流行的开源关系数据库管理系统 它速度快 容易使用 容易扩展 并且流行的LAMP和LEMP的一部分 这篇指南讲解了如何在 Ubuntu 20 04上安装和保护 MySQL
  • SQL 取数值小数后两位,但不四舍五入。

    例 1 67789 结果要显示为 1 67 select round 1 67789 2 1 1 67 语法 ROUND numeric expression length function 参数 numeric expression 精确
  • k8s滚动更新

    1 编写一个yaml文件 vi deployment nginx yaml apiVersion apps v1 kind Deployment metadata labels app nginx name nginx namespace
  • 22.MongoDB删除操作效率及相关问题验证

    最近遇到一个了一个MongoDB数据删除的问题 需要一次性删除上线即1 5年前 1年前的数据且之后每天清空一年过期的数据 在数据量比较大的情况下何种方式的删除效率最高是一个值得研究的问题 本文通过实际测试找出其中规律 本文采用腾讯云mong
  • PCL实现点云选取并计算选取点法向量及可视化

    1 背景及效果展示 因项目需求 基于PCL1 8 1 VS2015 实现点云特征点选取并计算选取的特点法向量 并对特征点选取过程可视化 法向量计算结果可视化 特此记录该小功能实现 随机选取几个特征点 计算选取特征点法线并可视化 2 实现步骤
  • 使用burp suite软件后开启代理后不能上网

    这篇一定要记录一下 不然忘记了太恶心了 转载网址 https blog csdn net weixin 45571987 article details 110411138
  • Shell万能工具箱脚本

    文章目录 说明 说明 使用步骤 万能工具箱 脚本结构 万能工具箱 执行效果 说明 说明 持续更新 整合业务中常用的脚本并分类触发 所有功能均基于运维企业实战Shell脚本合集 使用步骤 1 shell tools sh存放到 root sc
  • pidstat 命令详解

    pidstat 概述 pidstat是sysstat工具的一个命令 用于监控全部或指定进程的cpu 内存 线程 设备IO等系统资源的占用情况 pidstat首次运行时显示自系统启动开始的各项统计信息 之后运行pidstat将显示自上次运行该
  • python 绘制分组对比柱状图

    首先放效果图 coding utf 8 import numpy as np import tensorflow as tf from matplotlib path import Path from matplotlib patches
  • 算法notes

    算法notes1 一 位运算 本文重点讲解前移位 前三个 位运算规则 十进制 gt 二进制 符号位 正数为0 负数为1 1 无符号右移 符号位不变 低位溢出 高位用符号位 第一位都是0 无论正负 填充 没有无符号左移 2 左移 lt lt
  • MyEclipse中生成Hibernate实体类及映射文件的方法

    下午 想还有一个工程项目要做 是采用三大框架SSH完成的 以下是简单的Hibernate实体类及映射文件的方法 在MyEclipse工作区右上角选择进入MyEclipse Database Explorer透视图 在DB Browser视图
  • Axios三层封装

    Axios三层封装 在实际项目中axios都是要经过封装再使用的 企业级项目一般都是三层封装 1 工具函数层 对axios工具进行增强 如 设置公共的请求服务器 设置请求拦截器 设置响应拦截器 创建一个文件夹utils 用来放axios 创
  • 【c++】——STL容器之vector的使用和模拟实现

    目录 1 vector的概述 2 vector常用接口 2 1 构造函数 2 2 迭代器的使用 2 3 修改的接口 push back pop back insert erase find reverse 2 4 关于容量接口 resize
  • 2020-06-09

    应该或者说必须努力下去 这只是为了生存得有意义一点 现在也许可以出错 那就去试试看 至少去做过了一些事情 有一天发现自己真的应该去试试的时候 有可能又有其他原因会让你不再敢去了 或是自身的原因 或是家庭的原因 或是环境的原因 有些年纪是可以
  • 关于串口收发数据出现全零或者收发数据位不同或者数据位一样,数据不匹配的问题

    近日用串口终端通过ttl转ra232来收发嵌入式开发板的数据 打开串口终端的收发数据全为零 以为是自己开发板上数据线出现问题 经过测试 开发板完全正常 转接电路也正常 但是不管是接收还是发送数据依然出现是全零的现象 对此做如下测试 默认设置
  • C++技能系列 ( 3 ) - 详解C++泛型模版和特化模版的使用

    系列文章目录 C 技能系列 C 高性能优化编程系列 深入理解软件架构设计系列 高级C 并发线程编程 期待你的关注哦 有更多博文系列等着看哦 会经常更新 因为你的关注激励着我的创作 快乐在于态度 成功在于细节 命运在于习惯 Happiness
  • CSDN-markdown编辑器

    欢迎使用Markdown编辑器 你好 这是你第一次使用 Markdown编辑器 所展示的欢迎页 如果你想学习如何使用Markdown编辑器 可以仔细阅读这篇文章 了解一下Markdown的基本语法知识 新的改变 我们对Markdown编辑器
  • MongoDB版本升级指南

    原文 MongoDBhttp t zoukankan com realcp1018 p 15532868 html 官方文档提供了版本升级的说明 本文只介绍3 0 gt 3 2 gt 3 4 gt 3 6 gt 4 0 gt 4 2之间的升