centos mongodb更新与升级策略
CentOS环境下MongoDB更新与升级策略
一、升级前准备
1. 备份数据
升级前必须对所有数据库进行完整备份,推荐使用mongodump
工具(支持增量备份),备份路径需指定到独立存储设备以避免磁盘空间不足。例如:mongodump --out /mnt/mongodb_backup/$(date +%F)
。备份完成后需验证备份文件的完整性(可通过mongorestore --dryRun
模拟恢复)。
2. 检查系统兼容性
- CentOS版本适配:MongoDB 6.0及以上版本要求CentOS 7(内核≥3.10、glibc≥2.17)或CentOS 8/Stream 8+;MongoDB 5.0及以上支持CentOS 7及以上。可通过
cat /etc/centos-release
确认系统版本。 - 依赖安装:手动安装二进制包时,需提前安装依赖库(如
libcurl
、openssl
、xz-libs
),避免安装失败:sudo yum install -y libcurl openssl xz-libs
。
3. 检查特性兼容性版本(FCV)
FCV决定了集群支持的特性集,升级前需将FCV设置为当前版本的最低兼容值(如从3.2升级到3.4,需先将FCV设为3.2)。升级完成后,再将FCV提升至新版本的值。查看FCV:db.adminCommand({
getParameter: 1, featureCompatibilityVersion: 1}
)
;设置FCV:db.adminCommand({
setFeatureCompatibilityVersion: "当前/上一版本" }
)
。
二、升级步骤
1. 选择升级方式(根据部署模式)
-
单节点部署:直接停止旧版本服务,替换二进制文件,启动新版本并验证。步骤如下:
① 停止服务:sudo systemctl stop mongod
;
② 备份数据目录(如/var/lib/mongo
);
③ 删除旧版本二进制文件(如/usr/bin/mongod
);
④ 解压新版本包(如tar -zxvf mongodb-linux-x86_64-rhel70-6.0.22.tgz
),并将解压后的bin
目录添加到系统环境变量(echo 'export PATH=/opt/mongodb/bin:$PATH' > > ~/.bashrc & & source ~/.bashrc
);
⑤ 启动服务:sudo systemctl start mongod
;
⑥ 验证版本:mongosh --eval 'db.version()'
。 -
副本集/分片集群部署:采用滚动升级(逐个节点升级),确保集群始终有可用节点。步骤如下:
① 登录mongos
实例,禁用负载均衡器(避免数据迁移影响升级):sh.stopBalancer()
;
② 升级从节点:依次关闭每个从节点(db.adminCommand({ shutdown: 1} )
),替换二进制文件,启动新版本并等待其恢复为SECONDARY
状态(通过rs.status()
确认);
③ 升级主节点:当所有从节点升级完成后,使用rs.stepDown()
将主节点降级为从节点,然后重复从节点升级步骤升级主节点;
④ 分片集群升级:对每个分片(Shard)和仲裁节点(Arbiter)执行上述滚动升级流程,确保分片间数据同步正常。
2. 验证升级结果
- 连接数据库:
mongosh
(MongoDB 6.0+专用客户端),执行基本命令(如show dbs
、db.runCommand({ ping: 1} )
)确认服务正常; - 检查日志:查看
/var/log/mongodb/mongod.log
(默认路径),确认无错误信息(如ERROR
、WARN
级别日志); - 测试应用:让应用程序连接新版本数据库,执行典型操作(如增删改查),验证兼容性。
三、升级注意事项
1. 严格遵循顺序升级
MongoDB不支持跨版本升级(如从3.2直接升级到4.0),必须按照官方推荐的顺序逐步升级(如3.2→3.4→3.6→4.0→…→6.0)。违反顺序可能导致数据损坏或服务无法启动。
2. 测试环境验证
生产环境升级前,必须在与生产环境配置一致的测试环境中完成升级流程,验证应用程序与新版本的兼容性(如驱动支持、SQL语法变化),避免生产环境故障。
3. 监控与回滚准备
- 监控:升级过程中实时监控数据库性能(如CPU、内存、磁盘IO)和状态(如副本集同步状态、分片集群数据分布),可使用
mongostat
、mongotop
或第三方工具(如Prometheus+Granafa); - 回滚方案:若升级后出现严重问题(如数据丢失、服务崩溃),立即停止新版本服务,恢复备份数据(
mongorestore
),并重启旧版本服务。建议保留旧版本的二进制文件和配置文件至少7天。
4. 安全加固
- 升级后启用身份验证(若未启用):编辑
/etc/mongod.conf
,添加security.authorization: enabled
,并创建管理员用户; - 启用SSL/TLS加密:配置
net.ssl.mode: requireSSL
和证书路径,防止数据传输被窃取; - 定期更新补丁:关注MongoDB官方安全公告,及时安装最新补丁(如MongoDB 6.0.23修复了某高危漏洞)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos mongodb更新与升级策略
本文地址: https://pptw.com/jishu/732446.html