Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

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>
}
)

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

フィールド
タイプ
必要性
説明
configureCollectionBalancing
string
必須
設定するデータベースとシャーディングされたコレクションの名前。
chunkSize
integer
任意
コレクションの チャンク サイズ を MiB 単位で設定します。 推奨サイズは256 、 512 、またはそれより大きいです。 デフォルトの動作の詳細については、「 chunkSize が指定されていない場合のデフォルトの動作 」を参照してください。
defragmentCollection
ブール値
任意
バランサーにコレクションをデフラグさせます。 デフォルトはfalseです。
enableAutoMerger
ブール値
任意
AutoMergerがこのコレクションを考慮するかどうか。 デフォルトはtrueです。

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

チャンクのデフラグ、スロットリング時間パラメータを構成するには、 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
} )

戻る

commitReshardCollection