2

のインスタンスに接続されているすべての構成サーバーのリストを (MongoDB の C# ドライバー内で) 取得する必要がありますMongo-s。または、それができない場合は、すべてのサーバーを取得する方法と、それらを 1 つずつ調べて、どれが configsvr でどれが別のものかを判断する方法に落ち着きます。私はgetShardMapコマンドを考えていましたが、サーバーを(プログラムで)見て、サーバーかどうかを判断する方法がまだわかりconfigsvrません。

ありがとう。

4

2 に答える 2

5
mongos> db.runCommand("getShardMap")
{
    "map" : {
        "node2:27021" : "node2:27021",
        "node3:27021" : "node3:27021",
        "node4:27021" : "node4:27021",
        "config" : "node2:27019,node3:27019,node4:27019",
        "shard0000" : "node2:27021",
        "shard0001" : "node3:27021",
        "shard0002" : "node4:27021"
    },
    "ok" : 1
}

getShardMap コマンドは、mongos サーバーに渡される構成文字列を提供します。文字列を解析して、構成サーバーのリストを取得できます。

于 2014-02-21T21:38:54.427 に答える
0

この情報を取得する唯一の方法は、mongos で getCmdLineOpts コマンドを実行し、渡された --configdb 引数を確認することです。C# ドライバーで管理コマンドを実行する方法はわかりませんが、次のようなものだと思います。

db.RunCommand("getCmdLineOpts");
于 2012-09-06T14:17:33.853 に答える