MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Tipps zum Upgrade auf die neueste MongoDB-Version

Die neuesten Versionen von MongoDB wurden entwickelt, um neue oder verbesserte Funktionen der Vorgängerversionen zu integrieren. Aus diesem Grund wird empfohlen, die neueste Version für maximale Leistung und zusätzliche Funktionen auszuführen. Außerdem können die neuesten Versionen das Ergebnis behobener Fehler sein, die von der MongoDB-Versionierung abhängen.

MongoDB-Versionierung

MongoDB-Versionen haben die Form X.Y.Z.

  • Wenn Y gerade ist, d. h. 4.0 oder 4.2, bezieht sich dies auf eine Release-Serie, die stabil ist und daher für die Produktion empfohlen wird. In diesem Fall werden neue Funktionen integriert, die zu Abwärtsinkompatibilität führen können.
  • Wenn Y ungerade ist, z. B. 4,1 oder 4,3, bezieht sich dies auf Entwicklungsserien, die nicht stabil sind und daher nur zum Testen empfohlen werden.
  • Z bezieht sich auf eine Revisions-/Patch-Nummer. Beinhaltet Fehlerbehebungen und abwärtskompatible Änderungen.

Auch die Berücksichtigung der MongoDB-Treiberversionen ist wichtig, um eine gut funktionierende Datenbank sicherzustellen.

Überlegungen vor dem Upgrade

  1. Sicherung :In der Mitte des Upgrades kann es zu Abstürzen kommen, die am Ende die Integrität der in der Datenbank gespeicherten Daten beeinträchtigen. Es wird daher empfohlen, vor dem Upgrade auf eine bestimmte Version immer eine Sicherungskopie der Daten zu erstellen.
  2. Wartungsfenster Hinweis:Beim Upgrade auf eine bestimmte Version kann es zu einer gewissen Komplexität kommen, wenn Replikatsätze beteiligt sind. Für diesen Vorgang muss man genügend Zeit einplanen, damit man nicht auf eine hohe Downtime stößt.
  3. Versionskompatibilität :Stellen Sie sicher, dass Sie die Versionshinweise durchgehen und prüfen, ob Ihr System-Setup mit der Version kompatibel ist, auf die Sie aktualisieren möchten. Überprüfen Sie auch die Treiberkompatibilitätsdokumentation auf der Treiberkompatibilitätsseite, ob sie mit der MongoDB-Version, auf die Sie aktualisieren möchten, kompatibel sind. Beispielsweise gibt es ab MongoDB 4.2 aufwärts keine Unterstützung für das Ubuntu 16.04 PPCLE-System.
  4. Streams ändern :Änderungsströme sind für Anwendungen konzipiert, die auf Datenänderungen in Echtzeit zugreifen können, ohne notwendigerweise das Oplog zu verfolgen. Für MongoDB-Versionen vor 4.0.7 verwendet Change Stream ein Fortsetzungstoken der Version 0 v0, während diese Version und die Nachfolger ein Fortsetzungstoken der Version 1 v1 verwenden. Es wird empfohlen, dass Kunden beim Upgrade auf Version 4.0.7 warten, bis das Upgrade abgeschlossen ist, bevor sie Änderungsströme fortsetzen.
  5. Prüfung der Staging-Umgebung :Stellen Sie sicher, dass alle Konfigurationen gut eingerichtet sind, bevor Sie die Produktionsumgebung aktualisieren, und dass sie mit der neuen Version kompatibel sind, auf die Sie aktualisieren möchten.
  6.  Primär -Sekundarstufe -Arbiter (PSA)-Architektur :MongoDB-Version 3.6 und höher aktivieren standardmäßig die Unterstützung für „Mehrheits“-Lesebedenken. Diese Konfiguration kann jedoch zu einer Überlastung des Speichercaches führen, und die einzige Möglichkeit, dies zu verhindern, besteht darin, diesen Parameter zu deaktivieren. Das Deaktivieren dieses Parameters kann jedoch weitere Bedenken hervorrufen, z. B.:
    1. Die Unterstützung für Transaktionen auf Sharding-Clustern wird dadurch beeinträchtigt:
      1. wenn ein Shard die „Mehrheit“ des Leseinteresses deaktiviert hat, wird ein Fehler für eine Transaktion ausgegeben, die auf mehrere Shards schreibt.
      2. Read Concern „Snapshot“ kann nicht für eine Transaktion verwendet werden, die einen Shard mit deaktivierter Read Concern „Majority“ umfasst
    2. collMod-Befehle, die dafür verantwortlich sind, einen Index vor dem Zurücksetzen zu ändern, funktionieren nicht. Dies schreibt vor, dass, wenn ein Vorgang zurückgesetzt werden muss, der primäre Knoten verwendet werden muss, um die betroffenen Knoten neu zu synchronisieren.
    3. Unterstützung für Change Streams für MongoDB 4.0 und frühere Versionen wird ebenfalls deaktiviert.
    4. Replica-Set-Transaktionen sind von der Deaktivierung dieses Parameters nicht betroffen.

Verfahren für die Aktualisierung

  1. Erstellen Sie eine Sicherungskopie Ihrer Daten.
  2. Aktualisieren Sie die mongod/mongos-Binärdatei separat mit dem Systempaketverwaltungstool neben den offiziellen MongoDB-Paketen. Sie können die Mongos auch aktualisieren, indem Sie die vorhandenen Binärdateien durch neue Binärdateien ersetzen, indem Sie dieses Verfahren verwenden:
    1. Laden Sie MongoDB-Binärdateien für die Revision herunter, auf die Sie aktualisieren möchten, und speichern Sie die heruntergeladene komprimierte Datei an einem temporären Speicherort.
    2. Fahren Sie die Instanz herunter.
    3. Verwenden Sie die heruntergeladenen Binärdateien, um die vorhandenen MongoDB-Binärdateien zu ersetzen.
    4. Starten Sie die Instanz neu.
  3. Wenn Sie einen Replikatsatz aktualisieren, aktualisieren Sie jedes Mitglied separat, indem Sie mit den sekundären und dem primären zuletzt beginnen. So aktualisieren Sie die Secondaries:
    1. Aktualisiere die Mongod-Binärdatei
    2. Warten Sie, bis die sekundäre Instanz wieder in den SECONDARY-Zustand zurückgekehrt ist, und aktualisieren Sie nach Abschluss die nächste Instanz. rs.status() wird verwendet, um den Status des Mitglieds in einer Mongo-Shell zu überprüfen. Die Zustände WIEDERHERSTELLEN und STARTEN können angezeigt werden, aber Sie müssen warten, bis der Zustand SEKUNDÄR wiederhergestellt wird.
  4. Beim Upgrade der primären:
    1. Verwenden Sie in einer Mongo-Shell rs.stepDown(), um die primäre Shell herunterzufahren, um ein normales Failover einzuleiten. Da während des Zeitraums keine Schreibvorgänge akzeptiert werden, ist es ratsam, das Upgrade so schnell wie möglich durchzuführen.
    2. Bis Sie sehen, dass ein anderes Mitglied zum primären gewählt wurde, aktualisieren Sie dann die Binärdateien des heruntergefahrenen primären.
    3. Starten Sie den Primärserver neu, nachdem das Upgrade abgeschlossen ist, aber wenn Sie seinen Status überprüfen, rs.status(), könnte er als Sekundärserver bezeichnet werden.
  5. So aktualisieren Sie für einen MongoDB 4.4 Sharded Cluster:
    1. Stellen Sie sicher, dass der Balancer deaktiviert wurde.
    2. Aktualisiere die Konfigurationsserver genauso, wie du den Replikatsatz aktualisiert hast.
    3. Aktualisieren Sie den Shard mit dem entsprechenden Verfahren, d. h. Replikatsatz oder eigenständig.
    4. Aktualisiere jede Mongos-Instanz der Reihe nach.
    5. Aktiviere den Balancer erneut.

Fazit

Mit der Zeit werden Daten komplexer und erfordern daher erweiterte Datenbankfunktionen, die die Spezifikationen von Datenbankadministratoren erfüllen können. MongoDB greift darauf nicht zurück, da es immer Datenbankversionen mit entweder behobenen Fehlern oder neu integrierten Funktionen veröffentlicht. Für maximale Leistung wird empfohlen, immer auf die neueste MongoDB-Version zu aktualisieren. Bevor Sie jedoch ein Upgrade durchführen, müssen Sie die Versionshinweise für die Version, auf die Sie aktualisieren möchten, überprüfen, ob sie mit Ihrem System kompatibel ist. Es ist auch ratsam, die entsprechenden MongoDB-Treiber zu aktualisieren.