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

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

configureCollectionBalancing

バージョン 5.3 で追加。

チャンク サイズの設定やコレクションのデフラグなど、シャーディングされたコレクションの バランサー 設定を構成します。

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

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

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

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

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

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

db.adminCommand(
{
configureCollectionBalancing: "<db>.<collection>",
chunkSize: <num>,
defragmentCollection: <bool>,
enableAutoMerger: <bool>,
enableBalancing: <bool>
}
)

configureCollectionBalancing には、次のフィールドがあります。

フィールド
タイプ
必要性
説明

configureCollectionBalancing

string

必須

設定するデータベースとシャーディングされたコレクションの名前。

chunkSize

integer

任意

コレクションの チャンク サイズ を MiB 単位で設定します。 推奨サイズは 256、512、またはそれより大きいです。 デフォルトの動作の詳細については、「 chunkSize が指定されていない場合のデフォルトの動作 」を参照してください。

defragmentCollection

ブール値

任意

バランサーにコレクションをデフラグさせます。 デフォルトはfalseです。

enableAutoMerger

ブール値

任意

AutoMerger がこのコレクションを考慮するかどうかを設定します。デフォルトは true です。

enableBalancing

ブール値

任意

バランサー がコレクションで動作するかどうかを設定します。false に設定されていると、コレクションのバランサーは無効になります。

バージョン8.0.10の新機能

詳細については、「チャンクを使用したデータのパーティショニング 」を参照してください。

チャンクのデフラグ、スロットリング時間パラメータを構成するには、 chunkDefragmentationThrottlingMSを参照してください。

シャーディングされたコレクションのデフラグについて詳しくは、「シャーディングされたコレクションのデフラグ」をご覧ください。

コレクションにchunkSizeを指定せず、過去にカスタム サイズが設定されていない場合、グローバルのデフォルトchunkSizeがバランシングに使用されます。

configureCollectionBalancingchunkSize: 0と併用すると、コレクションごとのchunkSizeがリセットされ、グローバルのデフォルトchunkSizeがバランシングに使用されます。

デフォルトのchunkSizeの構成の詳細については、「シャーディングされたクラスターの範囲サイズの変更 」を参照してください。

コレクションに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 を明示的に無効にするには、 enableAutoMergerオプションをfalseに設定します。

db.adminCommand( {
configureCollectionBalancing: "test.students",
enableAutoMerger: false
} )

コレクションのバランサーを明示的に無効にするには、enableBalancing オプションを false に設定します。

db.adminCommand( {
configureCollectionBalancing: "test.students",
enableBalancing: false
} )

戻る

commitReshardCollection

項目一覧