可能性のある複製:
mongodbで削除されたスペースを自動圧縮しますか?
私の理解では、削除操作ではMongoDBはディスク領域を解放しませんが、必要に応じて再利用します。
db.repairDatabase()
を実行して、データベースのサイズを縮小できます。これは、このMongoDBの質問の一部を複製したものです...
方法の詳細については、その回答を参照してください...
また、この関連するブログ投稿を見ることができます: http://learnmongo.com/posts/compacting-mongodb-data-files/
システムをロックする余裕がない場合、またはストレージが2倍にならない場合は、db.repairDatabase()を実行するよりもうまくいく別のソリューションがあります。
レプリカセットを使用している必要があります。
私の考えは、ディスクを使用している余分なデータをすべて削除し、セカンダリレプリカを停止し、そのデータディレクトリをワイプして起動し、マスターと再同期させることです。一度に1つずつ、他のセカンダリで繰り返します。
マスターで、rs.stepDown()を実行して、同期されたセカンダリの1つにMASTERを渡します。次に、これを停止し、ワイプして、再同期させます。
プロセスには時間がかかりますが、rs.stepDown()を実行すると、数秒のダウンタイムしかかかりません。