sh.balancerCollectionStatus()
定義
sh.balancerCollectionStatus(namespace)
シャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。
重要
mongosh メソッド
このページでは、
mongosh
メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
balancerCollectionStatus
コマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドはサーバーレスインスタンスではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の 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 出力 を参照してください。