[普通]MongoDB版本升级指南

作者(passion) 阅读(91次) 评论(0) 分类( 软件)

MongoDB官方文档提供了版本升级的说明,本文只介绍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

 

二、3.4==>3.6

 

三、3.6==>4.0

 

四、4.0==>4.2

 

五、示例升级流程:

鉴于文档和场景较多,只里只选一个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地址,同时建议开启权限认证,确保安全。

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

1
2
3
4
5
6
7
8
net.http.enabled
net.http.JSONPEnabled
net.http.port
net.http.RESTInterfaceEnabled
httpinterface
nohttpinterface
jsonp
rest

4. 确保没有Initial Sync在跑

    即确保没有其他secondary在做全量同步(一般新增secondary节点或者secondary节点数据目录被清空时会触发initial sync)

5. 3.6后新增read concern=majority选项

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

 

5.2 升级前的准备

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

1
2
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

2. 确保没有副本集节点处于ROLLBACK or RECOVERING状态。

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

 

5.3 升级流程

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

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

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

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

1
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )

升级完毕。


« 上一篇:tensorflow 下载地址分享 更新至tensorflow2.9
« 下一篇:分词数据集
在这里写下您精彩的评论
  • 微信

  • QQ

  • 支付宝

返回首页
返回首页 img
返回顶部~
返回顶部 img