2016-07-20 44 views
5

Ich habe Replikatssatz (auf Amazon gehostet), die hat:MongoDB Replik Herzschlag Anforderungszeit überschritten

  • primäre
  • Sekundär
  • Schiedsrichter

Alle von ihnen sind Version 3.2.6 und diese Replik macht einen Shard in meinem Sharded Cluster (wenn das wichtig ist, obwohl ich denke, dass es nicht ist).

Wenn ich rs.status() auf primären Typ heißt es, dass nicht sekundär erreichen (die gleiche Sache auf Schiedsrichter):

 { 
     "_id" : 1, 
     "name" : "secondary-ip:27017", 
     "health" : 0, 
     "state" : 8, 
     "stateStr" : "(not reachable/healthy)", 
     "uptime" : 0, 
     "optime" : { 
      "ts" : Timestamp(0, 0), 
      "t" : NumberLong(-1) 
     }, 
     "optimeDate" : ISODate("1970-01-01T00:00:00Z"), 
     "lastHeartbeat" : ISODate("2016-07-20T15:40:50.479Z"), 
     "lastHeartbeatRecv" : ISODate("2016-07-20T15:40:51.793Z"), 
     "pingMs" : NumberLong(0), 
     "lastHeartbeatMessage" : "Couldn't get a connection within the time limit", 
     "configVersion" : -1 
    } 

(schauen btw am optimeDate Oo)

Fehler im Log ist:

[ReplicationExecutor] Error in heartbeat request to secondary-ip:27017; ExceededTimeLimit: Couldn't get a connection within the time limit 

Merkwürdige ist, dass, wenn ich auf Sekundär gehen und rs.status() alles l Typ OK, OK. Ich bin auch in der Lage, von meiner primären Instanz (mit mongo --host secondary) zu sekundären zu verbinden, also denke ich, es ist kein Netzwerkproblem. Gestern hat alles gut funktioniert.

TL; DR meine primäre kann nicht sehen sekundären und arbiter kann nicht sekundäre und meine sekundäre sieht primäre und es war alles in Ordnung vor einem Tag und ich bin in der Lage, manuell zu sekundären von primären Instanz verbinden.

Jeder hat eine Idee was könnte schief gehen?

Tnx, Ivan

+1

Was ist die Lösung dafür? Mein optimeDate ist das gleiche. – Richard

Antwort

0

Es scheint, die sekundäre optimeDate für den Fehler verantwortlich ist, ist der beste Weg, um die Gründe für diese falsche optimeDate kennen zu lernen ist es, die Maschine aktuelle Datum Zeit des sekundären zu untersuchen, wie es könnte auch falsch liegen. Nicht sicher, dass Sie immer noch nach einer Antwort suchen, aber das Optimedate ist das Problem und es ist nicht die Verbindung zwischen Ihren Replicaset-Maschinen.