The repairDatabase command compacts all collections in the database. It is identical to running the compact command on each collection inpidually.
需要注意的是compact不会像repairDatabase那样释放已经申请的磁盘空间,但是新的磁盘请求会使用整理出来的空间。另一个要注意的是,这两个命令都需要额外的空间,参见 dick usage 一节。这也就是说,如果磁盘空间已经满了,这两个命令也用不了。不过这时,可以重新同步一个从结点,重建磁盘数据。
如果在replica set中使用repairDatabase或者compact的话,最好采用 rolling 的方式。
Rolling 的方式就是先把一个从结点(secondary)拿出来,整理磁盘。然后在所有的从结点上重复以上步骤。最后撤换主结点 (step down primary),然后在其上整理磁盘。这样可以避免这些操作对线上服务的影响。
エクスポートしてからインポートする必要はありません。
repairDatabase
またはcompact
を使用するとデータが圧縮されます。ただし、動作中のパフォーマンスには影響します。repairDatabase
或者compact
都会压缩数据。但是他们运行中对性能有影响。需要注意的是
compact
不会像repairDatabase
那样释放已经申请的磁盘空间,但是新的磁盘请求会使用整理出来的空间。另一个要注意的是,这两个命令都需要额外的空间,参见 dick usage 一节。这也就是说,如果磁盘空间已经满了,这两个命令也用不了。不过这时,可以重新同步一个从结点,重建磁盘数据。如果在replica set中使用
repairDatabase
或者compact
的话,最好采用 rolling 的方式。 Rolling 的方式就是先把一个从结点(secondary)拿出来,整理磁盘。然后在所有的从结点上重复以上步骤。最后撤换主结点 (step down primary),然后在其上整理磁盘。这样可以避免这些操作对线上服务的影响。推荐使用
repairDatabase コマンドは、データベース内のすべてのコレクションを圧縮します。これは、各コレクションに対して最初に Compact コマンドを実行するのと同じです。 🎜usePowerOf2Sizes
compact
はrepairDatabase
のように適用されたディスク領域を解放しませんが、新しいディスク要求は整理された領域を使用することに注意してください。もう 1 つ注意すべき点は、どちらのコマンドにも追加のスペースが必要であることです。ディックの使用法のセクションを参照してください。これは、ディスク容量がいっぱいの場合、これら 2 つのコマンドは使用されないことを意味します。ただし、この時点でスレーブノードを再同期し、ディスクデータを再構築することができます。 🎜 🎜 レプリカ セットでrepairDatabase
またはcompact
を使用する場合は、ローリング メソッドを使用するのが最適です。 ローリングの方法は、まずセカンダリ ノードを取り出し、ディスクをデフラグします。次に、すべてのスレーブ ノードで上記の手順を繰り返します。最後に、プライマリを停止し、プライマリ上のディスクをデフラグします。これにより、これらの操作によるオンライン サービスへの影響を回避できます。 🎜 🎜各アプリケーションとリリースは 2 の累乗であるため、頻繁な更新と削除の際に MongoDB がより効率的にディスクを使用できるようにするには、usePowerOf2Sizes
を使用することをお勧めします。 🎜