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

sh.balancerCollectionStatus()

項目一覧

  • 定義
  • 構文
  • アクセス制御
sh.balancerCollectionStatus(namespace)

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

重要

mongosh メソッド

このページでは、mongosh メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません

データベースコマンドについては、 balancerCollectionStatusコマンドを参照してください。

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

sh.balancerCollectionStatus()の形式は次のとおりです。

sh.balancerCollectionStatus( <namespace> )

sh.balancerCollectionStatus()メソッドでは、次のパラメーターが使われます。

Parameter
タイプ
説明
文字列

"<database>.<collection>"形式でシャーディングするコレクションの名前空間

アクセス制御を使用して実行中の場合、メソッドを実行するには、ユーザーは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 出力 を参照してください。

戻る

sh.addTagRange