【问题标题】:mongoDB service on ubuntu not repairingubuntu上的mongoDB服务没有修复
【发布时间】:2017-09-08 23:57:15
【问题描述】:

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

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

但是,当我执行sudo service start mongod 时运行的 service 版本的 mongoDB 仍然使用原始的/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 数据库?

【问题讨论】:

    标签: mongodb ubuntu


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 2011-03-21
      • 2019-12-03
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      相关资源
      最近更新 更多