LoginSignup
1
3

More than 5 years have passed since last update.

MongoDBでデータベースの容量が大きすぎてメモリに乗らない場合の対処方法

Posted at

はじめに

MongoDBで特定の環境のみで大量のエラーを吐いて落ちる現象を確認しました.エラーを確認したところ,MongoDBのデータベース容量が過剰でメモリに乗りきらない可能性があると考えました.特に,WiredTriggerがメモリ・アロケーションに失敗しているようなエラーを吐いていました.

ここでは,データベースがメモリに乗りきらないので修復することを目的に話を進めます.ほかの理由でMongoDBが落ちる場合は,ほかの対処方法を探してください.

MongoDBのデータベースの修復

MongoDBのmongodコマンドでは,データベースを現在の環境に合わせて修復するコマンドが用意されています.

mongod --repair --dbpath="C:\db"でデータベースの修復処理を走らせることができます.あくまでデータベースの修復だけで,サーバの立ち上げは行いません.

再度,mongod --dbpath="C:\db"でデータベースを開いてください.

MongoDBのrepairオプション

repairオプションでは,MongoDBのデータベースファイルの修復を自動的に行います.

例えば,データベースを作成した環境のメモリが32GBで,運用環境で4GBしかメモリがないとき,データベースがメモリに乗りきらずに落ちることがあります.ほかにも,過去に強制的にMongoDBをシャットダウンしたら.lockファイルが残ってて起動しなくなる,などのトラブルも自動的に解決します.

MongoDBが立ち上がらないときは,焦らずにrepairオプションを使ってデータベースを修復してみましょう.

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3