configureCollectionBalancing
定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool> enableAutoMerger: <bool> } )
コマンドフィールド
configureCollectionBalancing
には、次のフィールドがあります。
フィールド | タイプ | 必要性 | 説明 |
---|---|---|---|
| string | 必須 | 設定するデータベースとシャーディングされたコレクションの名前。 |
| integer | 任意 | コレクションの チャンク サイズ を MiB256 512単位で設定します。推奨サイズは 、 、またはそれより大きいです。デフォルトの動作の詳細については、「 chunkSize が指定されていない場合のデフォルトの動作 」を参照してください。 |
| ブール値 | 任意 | バランサーにコレクションをデフラグさせます。 デフォルトは |
| ブール値 | 任意 | AutoMergerがこのコレクションを考慮するかどうか。 デフォルトは |
詳細については、「チャンクを使用したデータのパーティショニング 」を参照してください。
チャンクのデフラグ、スロットリング時間パラメータを構成するには、 chunkDefragmentationThrottlingMS
を参照してください。
シャーディングされたコレクションのデフラグについて詳しくは、「シャーディングされたコレクションのデフラグ」をご覧ください。
動作
chunkSize が指定されていない場合のデフォルトの動作
コレクションにchunkSize
を指定せず、過去にカスタム サイズが設定されていない場合、グローバルのデフォルトchunkSize
がバランシングに使用されます。
chunkSize を指定: 0
configureCollectionBalancing
をchunkSize: 0
と併用すると、コレクションごとのchunkSize
がリセットされ、グローバルのデフォルトchunkSize
がバランシングに使用されます。
デフォルトのchunkSize
の構成の詳細については、「シャーディングされたクラスターの範囲サイズの変更 」を参照してください。
enableAutoMerger が指定されていない場合のデフォルトの動作
コレクションにenableAutoMerger
を指定せず、カスタムの自動マージ動作が過去に設定されていない場合は、デフォルトでtrue
になり、AutoMerger によって考慮されます。
例
チャンク サイズの設定
シャーディングされたコレクションのチャンク サイズを変更するには、 chunkSize
オプションを使用します。
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 256 } )
特定のコレクションのチャンク サイズを変更するには、次のコマンドを使用します。
警告
デフォルトでは、チャンク内のドキュメント数が、構成されたチャンク サイズを平均ドキュメント サイズで割った結果の2倍を超える場合、MongoDB はチャンクを移動できません。
平均ドキュメントサイズを見つけるには、 db.collection.stats()
メソッドの出力のavgObjSize
フィールドを参照してください。
詳細については、「範囲サイズ 」を参照してください。
コレクションのデフラグ
警告
MongoDB 6.0.0 から 6.0.3 および MongoDB 6.1.0 のシャーディングされたコレクションのデフラグには、 defragmentCollection
を使用することは推奨しません。 を 6.1.1 に設定し、 これらのリリースのデフラグ プロセスにより、データベースとコレクションが長期間にわたって使用できなくなる可能性があるためです。
シャーディングされたコレクションをデフラグするようにバランサーに指示するには、 defragmentCollection
オプションを使用します。
db.adminCommand( { configureCollectionBalancing: "test.students", defragmentCollection: true } )
このコマンドを使用して、バランサーにシャーディングされたコレクションをデフラグします。 チャンクのデフラグ プロセスをモニターするには、 balancerCollectionStatus
コマンドを使用します。
シャーディングされたコレクションのデフラグについて詳しくは、「シャーディングされたコレクションのデフラグ 」をご覧ください。
コレクションの再構成とデフラグ
チャンク サイズを更新中にシャーディングされたコレクションをデフラグするには、 defragmentCollection
オプションとchunkSize
オプションを併用します。
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 512, defragmentCollection: true } )
コレクションで AutoMerger を無効にする
コレクションの AutoMerger を明示的に無効にするには、 enableAutoMerger
オプションをfalse
に設定します。
db.adminCommand( { configureCollectionBalancing: "test.students", enableAutoMerger: false } )