2017-04-13 6 views
1

私はubuntuバージョン(16.04.2から16.04へ)とb)mongoDBバージョン(3.2.3から3.4.3へ)をアップグレードしたAWS ubuntuインスタンスを持っています。しかし、私がそうしたとき、mongoDBは私のすべてのデータベースとリンクを解除しました。mongoDBサービスon ubuntu修復しません

データベースファイルを/data/db/にコピーし、sudo mongod --repairを使用し、mongoシェルですべてのデータベースにアクセスできました。

しかし、私はsudo service start mongodを実行するときに実行のMongoDBのサービスバージョンは、依然として(データがまだ存在する)元/var/lib/mongodb/を使用しています。 db.repairDatabase()を使用してシェル内から修復しようとすると、{ "ok" : 1 }しか追加されません。クライアントがアクセスできるように、サービス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データベースを修復することができます:ここでは

は、どのようなサービスのmongod出力の読み出しのですか?

答えて

1

mongodump --archive={path}を使用して、動作していたローカルデータベースからアーカイブにダンプすることがわかりました。その後、私はサービスをオンにして、すべてを正しいデータベースにロードしたmongorestore --archive={path}を使用しました。それは再び機能的です。

関連する問題