查看: 106|回覆: 0

MongoDB版本升级指南

[複製鏈接]

1

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-1-21
發表於 2021-11-10 12:01:00 | 顯示全部樓層 |閲讀模式

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

  • 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)

5. 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状态。

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

 

5.3 升级流程

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

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

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

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

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

升级完毕。



来源:https://www.cnblogs.com/realcp1018/p/15532868.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部