ubuntu上的mongoDB服务没有修复

标签 mongodb ubuntu

我有一个 AWS ubuntu 实例,我在其中升级了 a)ubuntu 版本(从 16.04 升级到 16.04.2)和 b)mongoDB 版本(从 3.2 升级到 3.4.3)。但是,当我这样做时,mongoDB 会取消链接到我的所有数据库。

我能够将数据库文件复制到 /data/db/ , 使用 sudo mongod --repairmongo shell,访问所有数据库。

但是,服务 mongoDB 版本,当我执行 sudo service start mongod 时运行还在用原来的/var/lib/mongodb/ (数据仍然存在的地方)。当我尝试使用 db.repairDatabase() 从 shell 中修复时, 我只得到 { "ok" : 1 }但没有添加数据库。我需要让服务 mongod 运行,以便客户可以访问它。

这是服务 mongod 输出的读数:

> db.adminCommand("getCmdLineOpts")
{
"argv" : [
    "/usr/bin/mongod",
    "--quiet",
    "--config",
    "/etc/mongod.conf"
],
"parsed" : {
    "config" : "/etc/mongod.conf",
    "net" : {
        "bindIp" : "127.0.0.1",
        "port" : 27017
    },
    "storage" : {
        "dbPath" : "/var/lib/mongodb",
        "journal" : {
            "enabled" : true
        }
    },
    "systemLog" : {
        "destination" : "file",
        "logAppend" : true,
        "path" : "/var/log/mongodb/mongod.log",
        "quiet" : true
    }
},
"ok" : 1
}
> db.repairDatabase()
{ "ok" : 1 }
> show databases
admin  0.000GB
local  0.000GB

如何修复服务 mongod 数据库?

最佳答案

我意识到我可以使用 mongodump --archive={path}并从正在工作的本地数据库转储到存档。然后我打开服务并使用mongorestore --archive={path} ,它将所有内容加载到正确的数据库中。它再次起作用。

关于ubuntu上的mongoDB服务没有修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382476/

相关文章:

mongodb - 仅在使用 golang 实现查询时使用聚合查询中的空白数据

java - Spring MVC + MongoDB

javascript - Mongodb 按 dbref 字段分组

linux - bash ubuntu linux 中的脚本程序输入

c++ - 在 Linux 环境中使用 C++ 的 BLE 服务器端实现

ubuntu - avconv 视频翻转需要很长时间,我们如何减少处理时间?

apache - 传输层安全模块加载失败

MongoDB:在 Map Reduce 期间收集 E11000 重复键错误

mongodb - MongoDB 聚合中的 $dayOfWeek 和时区

linux - cronjob 等待问题