balancerCollectionStatus
定義
balancerCollectionStatus
シャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。
balancerCollectionStatus
はadmin
データベースに対してのみ発行できます。Tip
mongosh
では、このコマンドはsh.balancerCollectionStatus()
ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongosh
ユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドはサーバーレスインスタンスではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { balancerCollectionStatus: "<db>.<collection>" } )
シャーディングされたコレクションの完全な名前空間( "<db>.<collection>"
)を指定します。
アクセス制御
アクセス制御を使用して実行中の場合、コマンドを実行するには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。 このフィールドは、 可能な値は次のとおりです。
このフィールドは、MongoDB によって監視された最初の違反に関する情報のみを返します。 |
"details" | 進行中のデフラグ プロセスに関する情報を含むオブジェクト。 このオブジェクトはデフラグの現在のフェーズと、そのフェーズで処理が残っているチャンクの数を示します。 出力の例については、「進行中のデフラグ プロセス 」を参照してください。 このフィールドは、 |
コマンド固有の戻りフィールドに加えて、 コマンドは操作の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
フィールドは現在のフェーズにのみ関連します。