定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
注意
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool>, enableAutoMerger: <bool>, enableBalancing: <bool> } )
コマンドフィールド
configureCollectionBalancing には、次のフィールドがあります。
フィールド | タイプ | 必要性 | 説明 |
|---|---|---|---|
| string | 必須 | 設定するデータベースとシャーディングされたコレクションの名前。 |
| integer | 任意 | Sets the chunk size in MiB for the collection. The recommended size is 256, 512, or larger. For details on default behavior, see Default Behavior When chunkSize Is Not Specified. |
| ブール値 | 任意 | バランサーにコレクションをデフラグさせます。 デフォルトは |
| ブール値 | 任意 | AutoMerger がこのコレクションを考慮するかどうかを設定します。デフォルトは |
| ブール値 | 任意 | バランサー がコレクションで動作するかどうかを設定します。 バージョン8.1の新機能。 |
詳細については、「チャンクを使用したデータのパーティショニング 」を参照してください。
チャンクのデフラグ、スロットリング時間パラメータを構成するには、 chunkDefragmentationThrottlingMSを参照してください。
シャーディングされたコレクションのデフラグについて詳しくは、「シャーディングされたコレクションのデフラグ」をご覧ください。
動作
chunkSize が指定されていない場合のデフォルトの動作
コレクションにchunkSizeを指定せず、過去にカスタム サイズが設定されていない場合、グローバルのデフォルトchunkSizeがバランシングに使用されます。
chunkSize を指定: 0
If you use configureCollectionBalancing with chunkSize: 0, the per-collection chunkSize is reset and the global default chunkSize is used for balancing.
デフォルトのchunkSizeの構成の詳細については、「シャーディングされたクラスターの範囲サイズの変更 」を参照してください。
enableAutoMerger が指定されていない場合のデフォルトの動作
コレクションにenableAutoMergerを指定せず、カスタムの自動マージ動作が過去に設定されていない場合は、デフォルトでtrueになり、AutoMerger によって考慮されます。
Parameter Validation
8.2 以降、MongoDB は、configureCollectionBalancing に渡すパラメータのスペルを検証します。パラメータのスペルを外すと、configureCollectionBalancing は実行に失敗し、エラーが返されます。
例
チャンク サイズの設定
シャーディングされたコレクションのチャンク サイズを変更するには、 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 } )
コレクションでのバランシングの無効化
コレクションのバランサーを明示的に無効にするには、enableBalancing オプションを false に設定します。
db.adminCommand( { configureCollectionBalancing: "test.students", enableBalancing: false } )