オートコンパクト
定義
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { autoCompact: <boolean>, freeSpaceTargetMB: <int>, // Optional runOnce: <boolean>, // Optional } )
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
コマンドフィールド
コマンドは以下の任意フィールドを取ることができます。
フィールド | タイプ | 説明 |
---|---|---|
freeSpaceTargetMB | 整数 | 任意。圧縮を続行するために回復可能な必要があるストレージ領域の最小量をメガバイト単位で指定します。 デフォルト:20 |
runOnce | ブール値 | 任意。
|
必要な特権
認証 が強制されるクラスターの場合は、クラスターでcompact
特権アクションが可能なユーザーとして 認証hostManager
を受ける必要があります。 ロールはautoCompact
を実行中するために必要な特権を提供します。
動作
ブロッキング
autoCompact
コマンド自体は読み取りと書込みをブロックしませんが、バックグラウンド圧縮はcompact
コマンドと同じブロック動作を適用します。
さらに、バックグラウンド圧縮がアクティブなときにautoCompact
を呼び出すと、 MongoDBはエラーを返します。 autoCompact
を再起動する必要がある場合、または別のオプションを使用して再度実行する必要がある場合は、まず現在のバックグラウンド圧縮操作を停止する必要があります。
db.runCommand( { autoCompact: false } )
現在のバックグラウンド圧縮が無効になったら、新しい構成でautoCompact
を再起動できます。
除外されたコレクション
oplogが存在する場合、 MongoDBはそれをバックグラウンド圧縮から除外します。
パフォーマンスに関する考慮事項
トラフィックが少ない期間中にautoCompact
を実行中ことをお勧めします。バックグラウンド圧縮を他の操作と並行して実行すると、パフォーマンスに影響が及ぶ可能性があります。
レプリカセット
レプリカセットに保存されているコレクションとインデックスに対して、バックグラウンド圧縮を実行できます。ただし、次の考慮事項に注意してください。
プライマリノードは、セカンダリ ノードに
autoCompact
コマンドを複製しません。バックグラウンド圧縮が実行中中にセカンダリノードがデータを複製できます。
バックグラウンド圧縮の実行中中、読み取りと書込みが許可されます。
シャーディングされたクラスター
autoCompact
はmongod
インスタンスにのみ適用されます。シャーディングされた環境では、各シャードでautoCompact
を個別に実行します。
mongos
インスタンスに対してautoCompact
を実行することはできません。