将 Mongodb 从 3.2 升级到 3.6 时出错

Error while upgrading Mongodb from 3.2 to 3.6

我需要在我的环境中将 mongodb 从 3.2 升级到 3.6。对于我首先按照建议从 3.2 迁移到 3.4 的过程。成功迁移到 3.4 后,我开始迁移到 3.6,我无法启动 mongod。检查日志文件时,我发现错误如下: 重要提示:升级问题:在尝试升级到 3.6 之前,数据文件需要完全升级到 3.4 版;有关详细信息,请参阅 http://dochub.mongodb.org/core/3.6-upgrade-fcv

我的Mongod.conf

系统日志: 目的地:文件 日志追加:真 路径:/var/log/mongodb/mongod.log

存储: 数据库路径:/var/lib/mongo 杂志: 启用:真

流程管理: fork: true # fork and 运行 在后台 pidFilePath: /var/run/mongodb/mongod.pid # pidfile 的位置

网: 港口:27017 bindIp: 127.0.0.1

我有类似的问题,我已经将 Ubuntu 16.04 从 MongoDB 3.4 升级到 3.6,但我错过了这个重要的步骤

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

然后我必须降级到 3.4 才能做到这一点,然后再升级到 3.6。以下是详细步骤:

1.卸载 3.6

备份/etc/mongod.conf
备份 /etc/apt/sources.list.d/mongodb-org-3.6.listed(重命名或移动到另一个文件夹)

sudo apt-get update
sudo apt-get remove mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools

2。重新安装 3.4
检查文件夹 /etc/apt/sources.list.d/ 以查看此文件是否存在:mongodb-org-3.4.list。 如果不存在,可以通过这个命令重新创建:

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

然后按apt-get

安装
sudo apt-get update
sudo apt-get install -y mongodb-org
mongod --version
sudo systemctl start mongod

在我的例子中,命令 systemctl start mongod return 错误 Failed to start mongod.service: Unit mongod.service not found 我通过这些命令解决了:

sudo systemctl enable mongod
sudo service mongod restart
sudo service mongod status

3。执行非常重要的命令
降级到 3.4 后,运行 this

mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
{ "featureCompatibilityVersion" : "3.4", "ok" : 1 }
> exit

4。再次升级 3.6
还原此文件 /etc/apt/sources.list.d/mongodb-org-3.6.listed

sudo apt-get update
sudo apt-get install mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools

恢复/etc/mongod.conf。现在,MongoDB 3.6 开始没有任何问题

当您的 db 文件夹包含旧的 mongoDB 数据库格式(如 3.4)时可能会出现这种情况

这里有一个有用的技巧如果您不介意丢失所有数据

  • 保存后您可以删除/data/db文件夹的内容(ubuntu/linux mint)
  • 然后重启mongod,就可以正常工作了