mongodb - 将 Mongodb 从 3.2 升级到 3.6 时出错

标签 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了解更多详情。

我的 Mongod.conf

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

存储: dbPath:/var/lib/mongo 杂志: 启用:真

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

网络: 港口:27017 绑定(bind)IP: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 返回错误 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 启动没有任何问题

关于mongodb - 将 Mongodb 从 3.2 升级到 3.6 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318487/

相关文章:

mysql - 将数据从 MySQL 迁移到 SQL Server

php - 用户 'homestead' @'localhost' 的访问被拒绝(使用密码 : YES)

php - Laravel - 表不存在

database - 如何将 Drupal 数据迁移到 Django?

mongodb - 使用 apt-get 安装 mongodb-10gen 失败

mongodb - 如何找到 MongoDB 集合中占用大量空间的元素?

c# - 从 SQL(C# 和 Entity Framework )到 mongodb(Go 和 mgo)

java - 在 Spring Boot 中存储 MongoDB 用户的可配置加密密码

mysql - liferay 将数据从 hsql 迁移到 mysql

elasticsearch - Elasticsearch script_fields更新另一个字段?