Setup: Replikat mit 5 Knoten, Version 3.4.5.MongoDB primärer stepDown ist nicht erfolgreich
Versuch PRIMARY mit rs.stepDown zu schalten (60, 30), sondern immer gleichbleibend den Fehler:
rs0:PRIMARY> rs.stepDown(60, 30)
{
"ok" : 0,
"errmsg" : "No electable secondaries caught up as of 2017-07-11T00:21:11.205+0000. Please use {force: true} to force node to step down.",
"code" : 50,
"codeName" : "ExceededTimeLimit"
}
jedoch rs.printSlaveReplicationInfo() in einem parallel laufenden Terminal bestätigt, dass alle Repliken bis vollständig gefangen :
rs0:PRIMARY> rs.printSlaveReplicationInfo()
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: X.X.X.X:27017
syncedTo: Tue Jul 11 2017 00:21:11 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
Mache ich etwas falsch?
UPD: Ich habe lange überprüft Operationen vor und während rs.stepDown
läuft wie es unten vorgeschlagen, und es sieht wie folgt aus:
# Before rs.stepDown
$ watch "mongo --quiet --eval 'JSON.stringify(db.currentOp())' | jq -r '.inprog[] | \"\(.secs_running) \(.desc) \(.op)\"' | sort -rnk1"
984287 rsSync none
984287 ReplBatcher none
67 WT RecordStoreThread: local.oplog.rs none
null SyncSourceFeedback none
null NoopWriter none
0 conn615153 command
0 conn614948 update
0 conn614748 getmore
...
# During rs.stepDown
984329 rsSync none
984329 ReplBatcher none
108 WT RecordStoreThread: local.oplog.rs none
16 conn615138 command
16 conn615136 command
16 conn615085 update
16 conn615079 insert
...
Grundsätzlich lange laufen scheinen Benutzeroperationen als Folge passieren von rs.stepDown()
als secs_running
wird nicht null, sobald PRIMARY
versucht, umzuschalten und weiter bis zum stepDown
scheitert. Dann wird alles wieder normal.
Irgendwelche Ideen, warum das passiert und ob das überhaupt normal ist?
Diese Frage ist nicht [zum Thema StackOverflow] (https://stackoverflow.com/help/on-topic) und gehört zu DBA StackExchange. Die zugehörige Frage enthält tatsächlich alle erforderlichen Kontextinformationen zu Ihrer Umgebung: [MongoDB legt beim Herunterfahren auf] (https://dba.stackexchange.com/questions/179616/mongodb-hangs-up-on-shutdown/180379). – Stennie
** Dieses Problem wurde in der Version 3.4.6 behoben. ** Siehe [diese Frage] (https://dba.stackexchange.com/questions/179616/mongodb-hangs-up-on-shutdown/180379) für mehr Kontext. – Dmitry