MongoDB 4.4 修订版本升级
-
本文档提供了将 MongoDB 4.4.x 环境升级至该系列最新修订版的标准操作参考
- 当前 MongoDB 4.4 系列的最新修订版本为 4.4.30
准备工作
-
获取对应操作系统的 MongoDB 4.4.30 二进制安装包,并上传至对应服务器
- RedHat / CentOS 7.0 x64
- RedHat / CentOS 8.0 x64
- Debian 10.0+ x64
- 其他
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.30.tgzhttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.30.tgzhttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian10-4.4.30.tgz-
官方下载:如需获取其他操作系统的安装包,请访问 MongoDB 社区版官方下载中心
-
国产系统兼容性:针对 EulerOS(欧拉)、麒麟、UOS 等国产操作系统,通常可以兼容对应版本的 CentOS 7/8 安装包。
-
示例(麒麟 V10):若使用麒麟 V10 ARM 版本,可下载使用 CentOS 8 ARM 64 架构的安装包:
-
解压安装包,并检测各安装包中的
mongod程序是否缺少依赖,如缺少依赖根据实际情况进行安装- RedHat / CentOS 7.0 x64
- RedHat / CentOS 8.0 x64
- Debian 10.0+ x64
解压各版本安装包
tar xvf mongodb-linux-x86_64-rhel70-4.4.30.tgz检查各版本安装包中的
mongod程序是否缺少依赖ldd mongodb-linux-x86_64-rhel70-4.4.30/bin/mongod解压各版本安装包
tar xvf mongodb-linux-x86_64-rhel80-4.4.30.tgz检查各版本安装包中的
mongod程序是否缺少依赖ldd mongodb-linux-x86_64-rhel80-4.4.30/bin/mongod解压各版本安装包
tar xvf mongodb-linux-x86_64-debian10-4.4.30.tgz检查各版本安装包中的
mongod程序是否缺少依赖ldd mongodb-linux-x86_64-debian10-4.4.30/bin/mongod
开始升级
-
升级前先停止微服务,随后对 MongoDB 进行数据备份
-
副本集升级顺序:严格遵守 从 SECONDARY (从节点) 到 PRIMARY (主节点) 的轮转升级顺序。
-
本文档示例命令中,MongoDB 程序所在路径为
/usr/local/mongodb/,如有不同注意修改对应命令
- 单节点
- 副本集
-
升级 MongoDB 单节点
操作步骤: 停止旧版本服务,通过替换二进制文件的方式升级至 4.4.30 版本。
# 停止旧版本服务
systemctl stop mongodb
# 备份旧版二进制文件
mv /usr/local/mongodb/bin/{mongo,mongo-4.4.bak}
mv /usr/local/mongodb/bin/{mongod,mongod-4.4.bak}
mv /usr/local/mongodb/bin/{mongos,mongos-4.4.bak}
mv /usr/local/mongodb/bin/{mongodump,mongodump-4.4.bak}
mv /usr/local/mongodb/bin/{install_compass,install_compass-4.4.bak}
# 拷贝新版本的二进制文件到现有 bin 目录(请根据实际解压路径与安装包名称执行)
cp -p mongodb-linux-x86_64-rhel70-4.4.30/bin/* /usr/local/mongodb/bin/
# 修正 属主与权限
chown -R mongodb:mongodb /usr/local/mongodb
# 启动服务
systemctl start mongodb- 状态检查:执行 rs.status(),确认该节点状态为 SECONDARY 且 uptime 正常。
- 如果无法启动或登录,请优先检查 MongoDB 程序日志。若因磁盘性能导致启动慢,请耐心等待。
-
登录 MongoDB 检查版本
/usr/local/mongodb/bin/mongo -u root -p 密码 --authenticationDatabase admin
> db.version()- 正常输出为:
4.4.30
- 正常输出为:
-
轮转升级 SECONDARY 节点
注意:每次仅升级一个 SECONDARY 节点,待其完全恢复后再进行下一个。
操作步骤: 停止旧版本服务,通过替换二进制文件的方式升级至 4.4.30 版本。
# 停止旧版本服务
systemctl stop mongodb
# 备份旧版二进制文件
mv /usr/local/mongodb/bin/{mongo,mongo-4.4.bak}
mv /usr/local/mongodb/bin/{mongod,mongod-4.4.bak}
mv /usr/local/mongodb/bin/{mongos,mongos-4.4.bak}
mv /usr/local/mongodb/bin/{mongodump,mongodump-4.4.bak}
mv /usr/local/mongodb/bin/{install_compass,install_compass-4.4.bak}
# 拷贝新版本的二进制文件到现有 bin 目录(请根据实际解压路径与安装包名称执行)
cp -p mongodb-linux-x86_64-rhel70-4.4.30/bin/* /usr/local/mongodb/bin/
# 修正属主与权限
chown -R mongodb:mongodb /usr/local/mongodb
# 启动服务
systemctl start mongodb- 如果无法启动或登录,请优先检查 MongoDB 程序日志。若因磁盘性能导致启动慢,请耐心等待。
登录 MongoDB 检查版本
/usr/local/mongodb/bin/mongo -u root -p 密码 --authenticationDatabase admin
> db.version()- 正常输出为:
4.4.30
检查副本集节点状态
> rs.status()- 正常应为一个 PRIMARY,两个 SECONDARY
-
重复操作
按照上述步骤,完成集群内所有 SECONDARY 节点的升级。
-
降级并切换 PRIMARY 节点
登录到 MongoDB 主节点,使用
rs.stepDown()命令降级主节点并强制选举新的主节点/usr/local/mongodb/bin/mongo -u root -p 密码 --authenticationDatabase admin
> rs.stepDown() -
升级旧 PRIMARY 节点,步骤与升级 SECONDARY 节点一致