sh.balancerCollectionStatus()
定義
sh.balancerCollectionStatus(namespace)
シャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。
重要
mongosh メソッド
このページでは、
mongosh
メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
balancerCollectionStatus
コマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
構文
sh.balancerCollectionStatus()
の形式は次のとおりです。
sh.balancerCollectionStatus( <namespace> )
Parameter
sh.balancerCollectionStatus()
メソッドでは、次のパラメーターが使われます。
アクセス制御
アクセス制御を使用して実行中の場合、メソッドを実行するには、ユーザーはenableSharding
データベースやコレクション に対する 特権アクションを持っている必要があります。つまり、ユーザーは、次の 特権 を付与する ロール を持っていなければなりません。
{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }
組み込みの clusterManager
ロールにより、適切な権限が付与されます。
例
シャーディングされたコレクションtest.contacts
のチャンクが現在バランスがとれているかどうかを確認するには、 mongos
インスタンスに接続して次のコマンドを実行します。
sh.balancerCollectionStatus("test.contacts")
コレクションのチャンクを移動する必要がない場合、メソッドは次のような出力を返します。
{ "balancerCompliant" : true, "ok" : 1, "operationTime" : Timestamp(1583193238, 1), "$clusterTime" : { "clusterTime" : Timestamp(1583193238, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
進行中のデフラグ プロセス
クエリされた名前空間がチャンクのデフラグを実行している場合、 sh.balancerCollectionStatus
メソッドは次のような出力を返します。
{ "chunkSize": Long("128"), "balancerCompliant": false, "firstComplianceViolation": "defragmentingChunks", "details": { "currentPhase": "moveAndMergeChunks", "progress": { "remainingChunksToProcess": 1 } } }
注意
チャンクのデフラグは複数のフェーズで行われます。 progress
フィールドは現在のフェーズにのみ関連します。
出力の説明については、 balancerCollectionStatus 出力 を参照してください。