Linux 上 MongoDB 版本升级实操指南
一 升级前准备
mongodump --out /path/to/backup_$(date +%F)。mongod --version、mongo --version。二 升级路径与方式
三 分步操作示例
mongodump --out /path/to/backup_$(date +%F);sudo systemctl stop mongodwget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listsudo apt-get updatesudo apt-get install --only-upgrade mongodb-orgsudo apt-get install -y mongodb-org=<new_version>(按需固定版本)sudo systemctl start mongod;mongod --version;mongo --eval 'db.version()'(新版 shell 可能为 mongosh)mongodump --out /path/to/backup_$(date +%F);sudo systemctl stop mongodcat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo[mongodb-org-4.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.4.ascEOFsudo yum update mongodb-orgsudo yum install -y mongodb-org-<new_version> mongodb-org-server-<new_version> mongodb-org-shell-<new_version> mongodb-org-mongos-<new_version> mongodb-org-tools-<new_version>sudo systemctl start mongod;mongod --version;mongo --eval 'db.version()'mongodump --out /path/to/backup_$(date +%F);sudo systemctl stop mongodwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-<version>.tgztar -zxvf mongodb-linux-x86_64-<version>.tgzsudo mv mongodb-linux-x86_64-<version> /opt/mongodb-<version>sudo mv /usr/bin/mongod /usr/bin/mongod-<old>;sudo ln -sfn /opt/mongodb-<version>/bin/mongod /usr/bin/mongod(同法处理 mongos/mongo/mongosh)echo 'export PATH=/opt/mongodb-<version>/bin:$PATH' | sudo tee -a /etc/profile.d/mongodb.sh && source /etc/profile.d/mongodb.shsudo systemctl start mongod(或 sudo /opt/mongodb-<version>/bin/mongod --config /etc/mongod.conf);mongod --version四 升级后验证与回滚
mongod --version、mongo --eval 'db.version()',systemctl status mongod 检查是否 active。rs.status() 检查 optime/health;分片集群确认 mongos 路由正常、balancer 已恢复。五 常见问题与排错