MongoDB Rolling Upgrade (7.0 → 8.0): Replica Set und Sharded Cluster
MongoDBStufe: FortgeschrittenDauer: 60–120 min (unabhängig von der Datenmenge; einige Minuten pro Mitglied)Aktualisiert ein laufendes MongoDB-7.0-Replica-Set oder einen Sharded Cluster unterbrechungsfrei (rolling) auf 8.0: Vorprüfungen (Version, FCV, Mitgliederstatus, Treiberkompatibilität), Backup, zuerst die Secondaries, dann stepDown und der bisherige Primary; im Sharded Cluster in der Reihenfolge Balancer stoppen, Config Server, Shards, mongos. FCV 8.0 kann optional bis nach der Burn-in-Phase aufgeschoben werden; Rollback-Optionen und ihre Grenzen sind enthalten. Für ein Patch-Update innerhalb derselben Hauptversion (8.0.x → 8.0.y) bleibt das Repo gleich und dieselbe Mitgliederreihenfolge gilt; wer von 6.0 kommt, aktualisiert zuerst auf 7.0.
Topologie: Replica Set (3+ Mitglieder) oder Sharded Cluster (Config Server + Shards + mongos)
Vor dem Start
- Alle …mongod-Instanzen (Config-Server- und Shard-Mitglieder) und mongos…Mitglieder… laufen mit 7.0.x und FCV 7.0. Wenn du von 6.0 kommst, aktualisiere zuerst auf 7.0 (eine Hauptversion kann nicht übersprungen werden).
- Kein Mitglied ist im Status ROLLBACK/RECOVERING/STARTUP2; die Secondaries liegen wenige Sekunden hinter dem Primary.
- Das Oplog-Fenster ist deutlich länger als die Wartungszeit (Ausfallzeit pro Mitglied), mindestens mehrere Stunden. Ist es zu kurz, braucht das heruntergefahrene Mitglied beim Wiederanlauf einen Initial Sync.
- Alle Anwendungstreiber sind in einer mit MongoDB 8.0 kompatiblen Version (Treiberkompatibilitätstabelle). Alte Treiber können sich eventuell nicht mit 8.0 verbinden oder unterstützen das neue Verhalten nicht.
- Die Seite zu den Kompatibilitätsänderungen in 8.0 ist gelesen; du nutzt keine entfernte oder geänderte Funktion (Parameter, Befehl, Abfrageverhalten). Wenn möglich, wurde das Upgrade zuerst in einer Testumgebung geprobt.
- Ein aktuelles Backup mit getesteter Wiederherstellung liegt vor (Snapshot oder mongodump). Das Wartungsfenster ist genehmigt.
- Jedes Mitglied hat genug freien Platz auf der Datenplatte und unter /var/log und Zugriff auf das 8.0-Repo (repo.mongodb.org).
- Auf den Config-Server- und Shard-Mitgliedern läuft mongod mit dem systemd-Dienst mongod und /etc/mongod.conf; auf den mongos-Servern heißt der Dienst …. Auf jedem Server läuft genau ein mongod-/mongos-Prozess.
- Der Balancer kann im Upgrade-Fenster gestoppt werden; es laufen keine Chunk-Migration, kein Resharding und kein Index-Build. Während der Wartung ist keine Änderung an Shard Keys oder Collection-Metadaten geplant.
Phasen der Anleitung
- Vorprüfungen — Version, FCV und Rolle (alle …mongod-Instanzen…Mitglieder…) · Mitgliederstatus und Replikationsverzögerung · Cluster-Status, Shards und Balancer · Ungültige system.buckets-Collections · Treiber und Kompatibilität prüfen · Backup und Rückfallpunkt …
- Repo-Wechsel (alle Mitglieder) — 8.0-Repo hinzufügen, 7.0-Repo deaktivieren · 8.0-Repo hinzufügen, 7.0-Repo deaktivieren
- Secondaries nacheinander aktualisieren — Secondary: prüfen, dass … nicht Primary ist, und stoppen · Secondary: 8.0-Binaries auf … installieren · Secondary: THP auf … für 8.0 einstellen · Secondary: … starten und auf SECONDARY warten · Secondary: prüfen, dass … nicht Primary ist, und stoppen · Secondary: 8.0-Binaries auf … installieren …
- Primary per stepDown abgeben und aktualisieren — Prüfen, dass die Secondaries auf 8.0 und fehlerfrei sind · Primary abgeben (stepDown) · Bisheriger Primary: prüfen, dass … nicht Primary ist, und stoppen · Bisheriger Primary: 8.0-Binaries auf … installieren · Bisheriger Primary: THP auf … für 8.0 einstellen · Bisheriger Primary: … starten und auf SECONDARY warten
- Balancer stoppen — Balancer stoppen und prüfen, dass die Migrationen beendet sind
- Balancer starten und Versionen prüfen — Prüfen, dass alle Komponenten auf 8.0 sind · Balancer wieder starten
- Verifizierung — Alle Mitglieder auf 8.0 · Anwendung und Log prüfen
- featureCompatibilityVersion 8.0 — FCV auf 8.0 anheben · FCV prüfen
- Rollback (nur bei Problemen) — Rollback-Weg wählen · Binaries auf 7.0 zurücksetzen: … · Wiederherstellung aus dem Backup · Rollback-Reihenfolge im Sharded Cluster