2016-05-04 4 views
1

Wir haben eine MongoDB Cluster haben und möchten uns bei allen Mitgliedern eines Clusters neu zu starten.Best Practice automatisierte MongoDB Cluster Restart

Wir konnten die Windows-Dienste automatisieren neu zu starten oder shutdownServer über mognoshell zu verwenden.

Aber wir wollen nicht die Datenbank nicht zur Verfügung haben, so wäre eine Idee, die Sklaven nur neu starten, stellen Sie unten einen Schritt, dann den alten Meister neu zu starten.

Ich weiß, ich kann bestimmen, Master und Slaves mit rs.status() und mit rs.StepDown() und rs.freeze() Ich kann verwalten, wer der primäre ist. Aber

ist dort errichtet ein in Art und Weise eine MongoDB cluister ohne Ausfallzeiten neu zu starten? Oder müsste ich ein Tool schreiben, das den Status des Servers liest und dann manuell handhabt?

Antwort

1

Es gibt keinen „sicheren Neustart“ Mechanismus noch in Mongo bauen.

Um das zu lösen, wird Anpassungs-Tool diese Schritte folgen müssen:

  • Nehmen Liste von Servern (A, B, C)
  • prüfen, ob ein primär -> wenn nicht neu starten und warten x Minuten
  • -> wenn ja, es am Ende der Liste setzen

....

  • wenn wir letzte Server erreichen - Ausgabe Step-Down, für Finish warten und

Wenn Step-Down ausgegeben neu starten wird - alle Clients gewaltsam vom Master getrennt sind, aber Wiederverbindung wird zu neuem Master sofort vorgenommen werden.

+0

ok thx das ist die Art, wie ich das Werkzeug tun würde:) jsut sicher machen wollte, das Rad neu zu erfinden nicht –