将Mongodb从3.2升级到3.6时出错

时间:2018-01-18 10:00:50

标签: mongodb database-migration data-migration

我需要在我的环境中将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

MY Mongod.conf

systemLog:   目的地:档案   logAppend:true   路径:/var/log/mongodb/mongod.log

存储:   dbPath:/ var / lib / mongo   日志:     enabled:true

processManagement:   fork:true#fork并在后台运行   pidFilePath:/var/run/mongodb/mongod.pid #pidfile的位置

净:   港口:27017   bindIp:127.0.0.1

2 个答案:

答案 0 :(得分:43)

我有类似的问题,我已将MongoDB 3.4中的 Ubuntu 16.04 升级到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返回错误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后,运行此

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开始没有任何问题

答案 1 :(得分:0)

如果您不关心丢失所有数据,则可以删除/data/db文件夹的内容,该文件夹显然包含一些3.4格式的数据库。

然后重新启动mongod