Docs Menu
Docs Home
/
データベース マニュアル
/ / /

autoCompact(データベースコマンド)

autoCompact

バージョン8.0の新機能

バックグラウンド圧縮を有効または無効にします。 有効にすると、 autoCompactは利用可能なすべてのファイルを定期的に反復処理し、ストレージに十分な空き容量がある場合は圧縮を継続的に実行します。

Before you enable autoCompact, run the $collStats aggregation stage with the storageStats: {} option to see if you have enough available storage space for compaction to proceed. If the amount of available space returned by freeStorageSize is less than freeSpaceTargetMB, background compaction has no effect.

このコマンドの構文は、次のとおりです。

db.runCommand(
{
autoCompact: <boolean>,
freeSpaceTargetMB: <int>, // Optional
runOnce: <boolean>, // Optional
}
)

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドは、M0 および Flex クラスターではサポートされていません。詳細については、「 サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

コマンドは以下の任意フィールドを取ることができます。

フィールド
タイプ
説明

freeSpaceTargetMB

整数

任意。 圧縮を続行するために回復可能な必要があるストレージ領域の最小量をメガバイト単位で指定します。

デフォルト:20

runOnce

ブール値

任意。 runOncetrueに設定されている場合、バックグラウンド圧縮はノード上のすべてのコレクションを通じて 1 回だけ実行されます。

runOncefalse に設定されている場合、データベース内のすべてのコレクションに対してバックグラウンド圧縮が継続的に実行されます。runOncefalse であるときにコレクションの圧縮に失敗した場合、 MongoDB はそのコレクションを一時的にスキップし、残りのコレクションの圧縮を続行します。MongoDB は、失敗したコレクションを約 1 時間後に再度圧縮しようとします。

認証 が強制されるクラスターの場合は、クラスターで 特権アクションが可能なユーザーとして 認証compact を受ける必要があります。hostManagerロールはautoCompactを実行中するために必要な特権を提供します。

autoCompactコマンド自体は読み取りと書込みをブロックしませんが、バックグラウンド圧縮はcompactコマンドと同じブロック動作を適用します。

さらに、バックグラウンド圧縮がアクティブなときにautoCompactを呼び出すと、 MongoDBはエラーを返します。 autoCompactを再起動する必要がある場合、または別のオプションを使用して再度実行する必要がある場合は、まず現在のバックグラウンド圧縮操作を停止する必要があります。

db.runCommand( { autoCompact: false } )

現在のバックグラウンド圧縮が無効になったら、新しい構成でautoCompactを再起動できます。

oplogが存在する場合、 MongoDBはそれをバックグラウンド圧縮から除外します。

トラフィックが少ない期間中にautoCompactを実行中ことをお勧めします。

圧縮は定期的にデータベースをチェックポイントしますが、これは同期のオーバーヘッドにつながる場合があります。トラフィックの多いデータベースでは、バックアップの取得などの運用タスクが遅れたり、妨げられたりする可能性があります。予期せぬ混乱を避けるため、バックアップを取る前に圧縮を無効にしてください。

レプリカセットに保存されているコレクションとインデックスに対して、バックグラウンド圧縮を実行できます。 ただし、次の考慮事項に注意してください。

  • プライマリノードは、セカンダリ ノードにautoCompactコマンドを複製しません。

  • バックグラウンド圧縮が実行中中にセカンダリノードがデータを複製できます。

  • バックグラウンド圧縮の実行中中、読み取りと書込みが許可されます。

autoCompactmongodインスタンスにのみ適用されます。 シャーディングされた環境では、各シャードでautoCompactを個別に実行します。

mongosインスタンスに対してautoCompactを実行することはできません。

戻る

管理

項目一覧