单机MongoDB升级4.2 > 4.4 > 5.0

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

操作环境

macOS Mojave 10.14.6
CentOS Linux release 7.9.2009 (Core)

mongodb的稳定版本全部为偶数例如4.0、4.2、4.4、5.0。不能跨大版本升级需要先由4.2升级到4.4再升级到5.0。
简单概括几个步骤就是检查版本-下载新版本-解压缩-停止MongoDB服务-替换文件-重启服务。
官方建议升级前先备份数据。
我的数据几十TB空间不足就没有备份先在线下mac上测试环境测试过可行了。
测试时最好测试下升级后的相关的使用到mongodb的应用程序是否能正常运行不涉及新版本删除了某方法的话通常情况下是没问题的。

1. 检查特性兼容版本参数

在升级到4.4之前必须确保该参数是4.2。
进入MongoDB

> use admin;
> db.auth('user', 'pass');
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

结果应该是
{ “featureCompatibilityVersion” : { “version” : “4.2” }, “ok” : 1 }
不是的话设置

> db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )

2. 官网下载要升级的版本

记得选好相对应的平台系统

$ cd /usr/local/mongodb/
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.18.tgz
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz

3. 正常关闭实例

这里必须正常关闭MongoDB 实例。

> use admin;
> db.auth('user', 'pass');
> db.shutdownServer();

用kill方式异常关闭的要去数据存放的文件夹…/data/db/下删除mongod.lock文件。

4. 更新MongoDB 二进制文件

用新版本解压后的bin/下的替换旧版本bin/下的install_compass mongo mongod mongos这4个文件即可。

$ cd /usr/local/mongodb/
$ mkdir new_mongodb
$ tar -xf mongodb-linux-x86_64-rhel70-4.4.18.tgz -C ./new_mongodb/
$ cd ./mongodb-linux-x86_64-rhel70-4.2.1/bin/
$ rm -rf install_compass mongo mongod mongos
$ mv /usr/local/mongodb/new_mongodb/mongodb-linux-x86_64-rhel70-4.4.18/bin/ /usr/local/mongodb/mongodb-linux-x86_64-rhel70-4.2.1/bin/

稳妥起见也可先把 install_compass、mongo、mongod、mongos这几个文件移走升级成功后再删除。

5. 启动实例

$ cd /usr/local/mongodb/mongodb-linux-x86_64-rhel70-4.2.1/bin/
$ ./mongod --config /usr/local/mongodb-macos-x86_64-4.2.1/mongodb.conf -fork

6. 更新特性兼容性参数

单机直接在admin库中执行。

> use admin;
> db.auth('user', 'pass');
> db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } ) 

对于大版本的升级必须执行该命令该命令会向内部的系统集合更新数据。 如果由于某种原因命令没有成功完成可以重试该命令因为操作是幂等的多次执行结果一样。这里也是MongoDB 只能逐级升级的原因每个大版本的迭代只能在上个版本的基础上才能进行。
升级5.0同理重复以上操作即可。

参考资料
MongoDB4.4官方文档
MongoDB5.0官方文档
MongoDB官方下载地址
MongoDB 4.4.14 升级到 5.0.8 操作手册
MongoDB 中文手册
MongodbMongodb升级 4.0 -> 4.2 -> 4.4

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go