のインスタンスに接続されているすべての構成サーバーのリストを (MongoDB の C# ドライバー内で) 取得する必要がありますMongo-s
。または、それができない場合は、すべてのサーバーを取得する方法と、それらを 1 つずつ調べて、どれが configsvr でどれが別のものかを判断する方法に落ち着きます。私はgetShardMap
コマンドを考えていましたが、サーバーを(プログラムで)見て、サーバーかどうかを判断する方法がまだわかりconfigsvr
ません。
ありがとう。
のインスタンスに接続されているすべての構成サーバーのリストを (MongoDB の C# ドライバー内で) 取得する必要がありますMongo-s
。または、それができない場合は、すべてのサーバーを取得する方法と、それらを 1 つずつ調べて、どれが configsvr でどれが別のものかを判断する方法に落ち着きます。私はgetShardMap
コマンドを考えていましたが、サーバーを(プログラムで)見て、サーバーかどうかを判断する方法がまだわかりconfigsvr
ません。
ありがとう。
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 サーバーに渡される構成文字列を提供します。文字列を解析して、構成サーバーのリストを取得できます。
この情報を取得する唯一の方法は、mongos で getCmdLineOpts コマンドを実行し、渡された --configdb 引数を確認することです。C# ドライバーで管理コマンドを実行する方法はわかりませんが、次のようなものだと思います。
db.RunCommand("getCmdLineOpts");