MongoDB 8 Upgrade bei Debian 13 Trixie

Es wurde Zeit, die von mir betreuten MongoDB-Instanzen von Version 7 auf Version 8 zu aktualisieren. Da ein MongoDB 8 Upgrade und die komplett umgebaute apt-Sourcen-Verwaltung bei Debian 13 Trixie eine brisante Gemengelage für ein Upgrade ergeben, habe ich diesmal besonders gründlich gearbeitet.

MongoDB 8 Upgrade

Ich habe eine Schritt-für-Schritt-Anleitung erstellt und diese abgearbeitet. Im folgenden Blogbeitrag halte ich sie fest — ich kann sie bestimmt noch mal gebrauchen, und vielleicht hilft sie auch dem einen oder anderen.

Vorbereitung des MongoDB 8 Upgrade

1. Backup erstellen

Wie bei jedem Upgrade sollte unbedingt vorher ein Backup mit dem Befehl mongodump erstellt werden! Dies gilt natürlich auch für das MongoDB 8 Upgrade. Ich gehe davon aus, dass man dies bei Datenbanken beherrscht und regelmäßig durchführt. Deshalb erkläre ich das hier nicht im Detail. 

2. Rolling Upgrade bei Replica Sets

Bei produktiven MongoDB-Installationen mit Replica Sets sollte ein Rolling Upgrade durchgeführt werden, um Ausfallzeiten zu vermeiden. Dabei werden die Nodes nacheinander aktualisiert, während das Cluster verfügbar bleibt.

Stelle dazu sicher, dass:

  • Alle Nodes im Replica Set dieselbe MongoDB 7.0 Version verwenden
  • Die Feature Compatibility Version auf 7.0 gesetzt ist
  • Alle Nodes gesund sind und keine Replikationsverzögerungen aufweisen

Aktualisiere zunächst die Secondary-Nodes. Warte nach jedem Secondary Node, bis dieser wieder SECONDARY-Status erreicht hat. Den Status kannst du mit folgendem Befehl abfragen:

mongosh
rs.status()

Durchführung des MongoDB 8 Upgrade

1. MongoDB 7 Repositories entfernen

Entferne die alte Repository-Konfiguration für MongoDB 7. Dabei gehe ich davon aus, dass diese wie bei Debian Trixie gewünscht im Verzeichnis „/etc/apt/sources.list.d/“ liegt und „mongodb-org-7.0.list“ heißt.

sudo rm /etc/apt/sources.list.d/mongodb-org-7.0.list

2. MongoDB 8 Repository hinzufügen

Importiere den GPG-Schlüssel für MongoDB 8:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Erstelle die neue Repository-Datei für MongoDB 8:

echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] <https://repo.mongodb.org/apt/debian> bookworm/mongodb-org/8.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Hinweis: Debian 13 Trixie ist noch nicht offiziell von MongoDB unterstützt. Ich verwende hier daher die bookworm-Repositories (Debian 12), die in der Regel auch unter Trixie funktionieren.

3. Paketliste aktualisieren

sudo apt update

4. Feature Compatibility Version prüfen

Vor dem Upgrade muss die Feature Compatibility Version (FCV) auf 7.0 gesetzt sein. Überprüfe dies in der MongoDB-Shell:

mongosh
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })

Falls die FCV nicht auf 7.0 steht, setze sie:

db.adminCommand({ setFeatureCompatibilityVersion: "7.0" })

5. MongoDB stoppen

sudo systemctl stop mongod

6. MongoDB 8 installieren

Aktualisiere MongoDB auf Version 8:

sudo apt install mongodb-org

7. MongoDB starten

sudo systemctl start mongod
sudo systemctl status mongod

8. Version überprüfen

Überprüfe, ob MongoDB 8 erfolgreich installiert wurde:

mongod --version

9. Feature Compatibility Version auf 8.0 setzen

Nach erfolgreichem Upgrade und Tests kannst du die FCV auf 8.0 aktualisieren:

mongosh
db.adminCommand({ setFeatureCompatibilityVersion: "8.0" })

Hinweis für Rolling Upgrades:

  • Warte mit dem setzen bis alle Nodes aktualisiert sind: Setze die FCV erst auf 8.0, nachdem alle Nodes (Secondary und Primary) erfolgreich auf MongoDB 8 aktualisiert wurden
  • Überprüfe den Cluster-Status: Stelle mit „rs.status()“ sicher, dass alle Nodes im Replica Set gesund sind und keine Replikationsverzögerungen bestehen
  • Führe den Befehl nur einmal aus: Die FCV-Änderung muss nur auf einem Node (typischerweise der Primary) ausgeführt werden – sie wird automatisch auf alle anderen Nodes repliziert
  • Keine Rückkehr möglich: Nach dem Setzen der FCV auf 8.0 kannst du nicht mehr auf MongoDB 7 downgraden. Stelle daher sicher, dass alle Tests erfolgreich waren
  • Teste vor der FCV-Änderung: Lasse deine Anwendungen zunächst mit MongoDB 8 bei FCV 7.0 laufen, um sicherzustellen, dass alles funktioniert, bevor du die neuen MongoDB 8 Features aktivierst

Troubleshooting nach MongoDB 8 Upgrade

Falls MongoDB nach dem Upgrade nicht startet, überprüfe die Logs mit „sudo journalctl -u mongod -f„. Häufige Probleme sind inkompatible Konfigurationsoptionen oder Berechtigungsfehler bei Datenbankdateien. In solchen Fällen hilft meist ein Blick in die offizielle MongoDB-Dokumentation oder die Anpassung der Konfigurationsdatei „/etc/mongod.conf„.

Weitere Hinweise zum MongoDB 8 Upgrade

Und hier noch ein paar weitere hilfreiche Hinweise:

  • Kompatibilität: Stelle sicher, dass deine Anwendungen mit MongoDB 8 kompatibel sind
  • Treiber-Updates: Aktualisiere MongoDB-Treiber in deinen Anwendungen auf die neuesten Versionen
  • Replica Sets: Bei Replica Sets upgrade zuerst die Secondary-Nodes, dann die Primary-Node
  • Sharded Clusters: Folge der offiziellen MongoDB-Dokumentation für komplexere Setups

Links mit weiteren Informationen zum MongoDB 8 Upgrade


Beitrag veröffentlicht

in

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

Consent Management Platform von Real Cookie Banner