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

balancerCollectionStatus

項目一覧

  • 定義
  • 互換性
  • 構文
  • アクセス制御
  • 出力ドキュメント
balancerCollectionStatus

シャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。

balancerCollectionStatusadmin データベースに対してのみ発行できます。

Tip

mongoshでは、このコマンドは sh.balancerCollectionStatus()ヘルパー メソッドを通じて実行することもできます。

ヘルパー メソッドはmongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。

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

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

重要

このコマンドはサーバーレスインスタンスではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。

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

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

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

db.adminCommand(
{
balancerCollectionStatus: "<db>.<collection>"
}
)

シャーディングされたコレクションの完全な名前空間( "<db>.<collection>" )を指定します。

mongoshはラッパー メソッドsh.balancerCollectionStatus()を提供します。

アクセス制御を使用して実行中の場合、コマンドを実行するにはenableSharding データベースやコレクション に対する 特権アクションが必要です。つまり、ユーザーは、次の 特権 を付与する ロール を持っていなければなりません。

{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }

組み込みの clusterManager ロールにより、適切な権限が付与されます。

以下は、 コマンドによって返されるドキュメントの例えです。

{
"chunkSize": Long("128"),
"balancerCompliant" : false,
"firstComplianceViolation" : "chunksImbalance",
"ok" : 1,
"operationTime" : Timestamp(1583192967, 16),
"$clusterTime" : {
"clusterTime" : Timestamp(1583192967, 16),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
フィールド
説明
"chunkSize"

バージョン 5.3 で追加。

チャンク サイズ をメガバイト単位で示す整数。

"balancerCompliant"
チャンクを移動する必要がない場合( true )、または移動する必要があるか( false )を示すブール値。
"firstComplianceViolation"

この名前空間の チャンク を移動する必要がある理由を示す string。 このフィールドは、 "balancerCompliant"falseの場合にのみ使用できます。

可能な値は次のとおりです。

"chunksImbalance"
コレクションのチャンクが最も多いシャードとコレクションのチャンクが最も少ないシャードのチャンク数の差が、移行しきい値を超えています。
"defragmentingChunks"
クエリされた名前空間は現在、チャンクのデフラグ プロセスを実行中です。 デフラグはconfigureCollectionBalancingコマンドでトリガーできます。
"draining"
シャードの削除操作が進行中であり、 MongoDBは削除されたシャードから他のシャードにチャンクをドレイニングする必要があります。
"zoneViolation"
チャンクが、シャードに定義されたゾーン範囲に違反している。

このフィールドは、MongoDB によって監視された最初の違反に関する情報のみを返します。 firstComplianceViolationで報告されたものとは異なる理由で、追加の保留中のチャンク移行が発生する可能性があります。

"details"

進行中のデフラグ プロセスに関する情報を含むオブジェクト。 このオブジェクトはデフラグの現在のフェーズと、そのフェーズで処理が残っているチャンクの数を示します。 出力の例については、「進行中のデフラグ プロセス 」を参照してください。

このフィールドは、 firstComplianceViolationdefragmentingChunksの場合にのみ返されます。

コマンド固有の戻りフィールドに加えて、 コマンドは操作のokステータス フィールド、 operationTimeフィールド、および$clusterTimeフィールドも返します。 これらのフィールドの詳細については、「応答 」を参照してください。

シャーディングされたコレクションtest.contactsのチャンクが現在バランスがとれているかどうかを確認するには、 mongosインスタンスに接続して次のコマンドを実行します。

db.adminCommand( { balancerCollectionStatus: "test.contacts" } )

コレクションのチャンクを移動する必要がない場合、コマンドは次のような出力を返します。

{
"chunkSize": Long("128"),
"balancerCompliant" : true,
"ok" : 1,
"operationTime" : Timestamp(1583193238, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1583193238, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}

クエリされた名前空間がチャンクのデフラグを実行している場合、 balancerCollectionStatusコマンドは次のような出力を返します。

{
"chunkSize": Long("128"),
"balancerCompliant": false,
"firstComplianceViolation": "defragmentingChunks",
"details": {
"currentPhase": "moveAndMergeChunks",
"progress": { "remainingChunksToProcess": 1 }
}
}

注意

チャンクのデフラグは複数のフェーズで行われます。 progressフィールドは現在のフェーズにのみ関連します。

詳細は、以下を参照してください。

戻る

analyzeShardKey