代码之家  ›  专栏  ›  技术社区  ›  Himanshu

将Mongodb从3.2升级到3.6时出错

  •  24
  • Himanshu  · 技术社区  · 7 年前

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

    系统日志: 目标:文件 logAppend:真 路径:/var/log/mongodb/mongod。日志

    存储: 数据库路径:/var/lib/mongo 日记账: 已启用:true

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

    净值: 端口:27017 bindIp:127.0.0.1

    2 回复  |  直到 7 年前
        1
  •  57
  •   Hengjie    7 年前

    我也有类似的问题,我升级了 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/来源。列表d/mongodb-org-3.6。上市的

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

    恢复 /etc/mongod。形态 . 现在,MongoDB 3.6已顺利启动

        2
  •  3
  •   TOPKAT    5 年前

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

    下面是一个有用的技巧 如果你不介意丢失所有数据

    • 之后 保存它 您可以删除的内容 /data/db 文件夹(ubuntu/linux-mint)
    • 然后重新启动 mongod ,则应正常工作