sql >> データベース >  >> NoSQL >> MongoDB

MongoDBデータベースファイルサイズの削減

    更新: compactで コマンドおよび WiredTigerは、余分なディスク領域が実際にOSに解放されるようです。

    更新: v1.9以降では、compactがあります コマンド。

    このコマンドは、「インライン」で圧縮を実行します。それでもいくらかの余分なスペースが必要ですが、それほど多くはありません。

    MongoDBは、次の方法でファイルを圧縮します:

    • ファイルを新しい場所にコピーする
    • ドキュメントをループして並べ替え/解決する
    • 元のファイルを新しいファイルに置き換える

    この「圧縮」は、mongod --repairを実行することで実行できます。 または、直接接続してdb.repairDatabase()を実行します 。

    どちらの場合も、ファイルをコピーするためのスペースが必要です。圧縮を実行するのに十分なスペースがない理由はわかりませんが、より多くのスペースを持つ別のコンピューターがある場合は、いくつかのオプションがあります。

    1. Mongoがインストールされている別のコンピューターにデータベースをエクスポートします(mongoexportを使用) )次に、同じデータベースをインポートできます(mongoimportを使用) )。これにより、より圧縮された新しいデータベースが作成されます。これで、元のmongodを停止できます 新しいデータベースファイルに置き換えれば、準備は完了です。
    2. 現在のmongodを停止し、データベースファイルをより大きなコンピューターにコピーして、そのコンピューターで修復を実行します。その後、新しいデータベースファイルを元のコンピューターに戻すことができます。

    現在、Mongoを使用して「適切な場所にコンパクト化」するための良い方法はありません。そして、モンゴは間違いなく多くのスペースを吸収することができます。

    圧縮のための現時点での最善の戦略は、マスタースレーブセットアップを実行することです。次に、スレーブを圧縮し、追いついて切り替えます。私はまだ少し毛むくじゃらを知っています。たぶん、Mongoチームはより良いインプレース圧縮を思い付くでしょうが、私はそれが彼らのリストの上位にあるとは思いません。ドライブスペースは現在安いと想定されています(そして通常はそうです)。



    1. シンプルなExpressアプリでNode.jsクラスターを使用するにはどうすればよいですか?

    2. レスキュー:接続が拒否されました-localhost:6379でRedisに接続できません

    3. MongoDB4.2用のPerconaサーバーの概要

    4. 単体テストにモックMongoDBサーバーを使用する