定義
balancerCollectionStatusシャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。
balancerCollectionStatusはadminデータベースに対してのみ発行できます。Tip
mongoshでは、このコマンドはsh.balancerCollectionStatus()ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { balancerCollectionStatus: "<db>.<collection>" } )
シャーディングされたコレクションの完全な名前空間("<db> ."collection>")を指定します。<collection>
アクセス制御
アクセス制御を使用して実行中の場合、コマンドを実行するにはenableSharding データベースやコレクション に対する 特権アクションが必要です。つまり、ユーザーは、次の 特権 を付与する ロール を持っていなければなりません。
{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }
組み込みの clusterManager ロールにより、適切な権限が付与されます。
出力ドキュメント
以下は、 コマンドによって返されるドキュメントの例えです。
{ "balancerCompliant" : false, "firstComplianceViolation" : "chunksImbalance", "ok" : 1, "operationTime" : Timestamp(1583192967, 16), "$clusterTime" : { "clusterTime" : Timestamp(1583192967, 16), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
フィールド | 説明 |
|---|---|
| チャンクを移動する必要がない場合( |
| この名前空間の チャンク を移動する必要がある理由を示す string。 このフィールドは、 可能な値は次のとおりです。
このフィールドは、MongoDB によって監視された最初の違反に関する情報のみを返します。 |
コマンド固有の戻りフィールドに加えて、 コマンドは操作のokステータス フィールド、 operationTimeフィールド、および$clusterTimeフィールドも返します。 これらのフィールドの詳細については、「応答 」を参照してください。
例
シャーディングされたコレクションtest.contactsのチャンクが現在バランスがとれているかどうかを確認するには、 mongosインスタンスに接続して次のコマンドを実行します。
db.adminCommand( { balancerCollectionStatus: "test.contacts" } )
コレクションのチャンクを移動する必要がない場合、コマンドは次のような出力を返します。
{ "balancerCompliant" : true, "ok" : 1, "operationTime" : Timestamp(1583193238, 1), "$clusterTime" : { "clusterTime" : Timestamp(1583193238, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }