2011-11-29 8 views
8

でファイルメモリをマップすることはできません。私たちのMongoDBインスタンスをホストするWindows Server 2003ではボックスは、ディスクの空き容量を使い果たし、そしてモンゴは、エラーが発生開始しました:はMongoDBの

は、ファイルメモリをマップすることはできません。

サーバーに追加のディスク領域を追加し、MongoDB Windowsサービスを再起動すると、データベースに対するすべての操作で「ファイルメモリをマップできません」というエラーが生成されます。修復を試みても同じエラーが表示されます。

> db.repairDatabase(); { "主張": "ファイルメモリをマッピングすることはできません"、 "assertionCode":10085、 "ERRMSG": "デシベルのアサーション失敗"、 "OK":0 }

何任意のアイデアデータベースをもう一度稼動させることができますか?

+0

あなたのデータベースを修復する際にロックファイルを削除する必要はありません。私のホスティングプロバイダが警告なしでMongoDBサーバをシャットダウンしたときも同様の問題が発生していました。レプリカセットは正しく起動せず、 'rs.initiate()'は上記の例外を投げていました。私は 'db.shutdownServer()'を使ってサーバをシャットダウンし、 '--repair'フラグで' mongod'を起動しました。データベースを完成させた後、再びデータベースを立ち上げることができました。ヒントをありがとう! –

答えて

8

db.repairDatabaseが実行しなかったサービスを停止し、ロックファイルを削除し、mongod --repairを実行しました。

+1

おかげで、ありがとう! –

+0

これは期待通りにうまくいかなかったことが分かります。 Mongoはエラーなく再実行されていますが、現在はCPUの90%を使用しています。 – Justin

+0

ありがとうございます。それは私のために働いた。 –

5

ジャスティンの答えが私のために働いた。誰かを助け

Stop Mongo Service: sudo service mongodb stop 
Delete Lock File: sudo rm /var/lib/mongodb/mongod.lock 
Repair the DB: sudo mongod --repair --dbpath=/var/lib/mongodb 
Restart the Mongo Service: sudo service mongodb start 

希望:ここ

はUbuntuのためのいくつかのより詳細な手順です。

は(編集済み - それはMongoDBはサービス名ですが、修復するための正しいコマンドでのmongodであることに注意)

+0

そのようにMongoDBをシャットダウンするべきではありません。これを行う最善の方法は、admin db( 'mongo admin')内のmongoシェルに入り、このコマンドでサーバをシャットダウンすることです:' db.shutdownServer() 'これは何の問題もなくクリーンなシャットダウンを生成しますモンゴから。 –