2016-11-10 4 views
1

MongoDB(2.4.x)レプリカセットに接続するために、従来のMongoDBドライバ(1.6.x)を使用しています。接続文字列に "?readPreference = secondary"があり、replicaSetに2つのMongoDBセカンダリがあります。私の接続文字列は、すべてのサーバーが含まれていますMongoDB PHPドライバがどのセカンダリから読み込み中であるかをどのように知ることができますか?

mongodb://dev-mongo01:27017,dev-mongo02:27017,dev-mongo03:27017/?replicaSet=dev-mongo-replica&readPreference=secondary 

私はreadPreferenceが期待通りに働いているとの二次レプリケーションの遅延を計算することを確認するために、両方から来る二その読み取りを見つけるしたいと思います。私は、管理データベースからMongoClient-> getConnections()、MongoClient-> getHosts()、 "serversatus"および "replSetGetStatus"を調べてみましたが、どのセカンダリがデータを提供しているかを示すものは見つかりませんでした。

答えて

0

あなたは$cursor->info()を呼び出すことができます。 hostportのキーは、特定のクエリを満たすMongoDBサーバを指定します。

$cursor = $this->mongoclient->selectDB("test")->selectCollection("test")->find(); 
$cursor->rewind(); 
print_r($cursor->info()); //MongoDB Cursor Info 

http://php.net/manual/en/mongocursor.info.php

を参照してください。
0

あなたのコードが適切なサーバーを読み取っているかどうかを確認するだけであれば、mongodb.logが適切な場所です。ノードとそのIPアドレスに接続しているユーザーが表示されます。クライアントからのすべての操作を記録するために

db.setProfilingLevel(2); 

また、あなたはセットでプロファイリングをオンにすることができます。この方法ではパフォーマンスが大幅に低下するので注意してください。で、それをオフにする:あなたはセカンダリ特定のリクエストを処理すべきかを制御する方法を探している場合は

db.setProfilingLevel(0); 

replica set tagは、あなたが探しているものです。あなたが/反復hostportconnection_type_descキーを含むデータ構造を取得するには、カーソルから読んだ後

関連する問題