Jede neue Version von Server CE/Server Pro weist in ihren Release Notes auf Änderungen der unterstützten MongoDB-Version hin.
Sollte ich MongoDB aktualisieren?
Sie sollten eine Aktualisierung Ihrer MongoDB-Version nur in Betracht ziehen, wenn Sie planen, Ihre Server CE/Server Pro-Instanz zu aktualisieren. Wenn Sie eine MongoDB-Version verwenden, die neuer ist als die für Ihre aktuelle (oder angestrebte) Version empfohlene, sind keine Änderungen erforderlich. Wenn Sie ein bestimmtes Problem haben, das Ihrer Meinung nach mit Ihrer aktuellen MongoDB-Version zusammenhängt, können Sie gerne ein Issue erstellen, wenn Sie Server CE nutzen, oder sich an den Overleaf-Support wenden, wenn Sie Server Pro nutzen.Ihre MongoDB-Version prüfen
Beim Öffnen dermongo-Shell sollte sofort die aktuelle Version ausgegeben werden.
Nutzer des Overleaf Toolkit:
Ablauf der Aktualisierung
Die Aktualisierung der MongoDB-Version im Rahmen eines Upgrades Ihrer Server CE/Server Pro-Instanz läuft wie folgt ab:- Legen Sie fest, auf welche Version von Server CE/Server Pro Sie upgraden möchten.
- Ermitteln Sie die MongoDB-Version, die für dieses konkrete Overleaf Server CE/Server Pro-Release empfohlen wird.
- Folgen Sie den Anweisungen, um MongoDB auf die Zielversion zu aktualisieren.
- Aktualisieren Sie die Image-Version von Server CE/Server Pro und starten Sie die Instanz neu.
Bei einem Upgrade von Server CE/Pro empfehlen wir, zunächst auf das neueste Release der bereitgestellten Hauptversion zu aktualisieren, bevor Sie auf das neueste Release der nächsten Hauptversion upgraden. Liegt Ihre Bereitstellung mehr als eine Hauptversion hinter der neuesten zurück, müssen Sie ein mehrstufiges Upgrade durchführen.Wenn Sie beispielsweise 3.5.10 verwenden, müssen Sie auf 3.5.13 upgraden -> die Migration des vollständigen Projektverlaufs durchführen -> 4.2.9 -> 5.5.4.Sie sollten niemals Hauptversionen überspringen (3.5.10 -> 5.5.4). Wenn Sie das Toolkit verwenden und mehr als eine Hauptversion hinter der neuesten liegen, dürfen Sie das Skript
bin/upgrade nicht verwenden, da Sie ein manuelles, mehrstufiges Upgrade durchführen müssen.Informationen zur Versionsunterstützung
Falls Sie sich für eine ältere Version entscheiden, zeigt diese Tabelle die empfohlene MongoDB-Version für frühere Releases von Server CE/Server Pro. Sie sollten Ihre MongoDB-Version jedoch niemals herabstufen.| Server CE/Server Pro | MongoDB-Version | Minimale Feature Compatibility Version | Maximal vom Node.js-Treiber unterstützte Version |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x bis 2.4.x | 3.6 | - | - |
| >=2.5.0 | 4.0 | - | - |
| >=3.1.0 | 4.2 | - | - |
| >=3.2.0 | 4.4 | - | - |
| >=4.2.0 | 5.0 | - | - |
| >=5.1.0 | 6.0 | - | - |
| >=5.3.1 | 6.0 | 5.0 | 8.0 |
| >=5.5.0 | 6.0 | 6.0 | 8.0 |
| 6.0.0 | 8.0 | 8.0 | 8.0 |
Die oben angegebene minimale Feature Compatibility Version basiert auf der MongoDB-Version, die für die jeweils gezeigte Overleaf-Version empfohlen wird. Wenn Sie eine höhere Version verwenden möchten, gelten die eigenen Mindestanforderungen von MongoDB.
MongoDB upgraden
MongoDB erfordert schrittweise Upgrades. Das bedeutet, dass Sie nicht direkt von beispielsweise4.0 auf 5.0 wechseln können. Sie müssen zunächst von 4.2 auf 4.4 und anschließend auf 5.0 aktualisieren.
MongoDB verwendet gerade Versionsnummern für stabile Versionen.
Anweisungen zur Aktualisierung, wenn MongoDB außerhalb von Docker läuft
Hier finden Sie Links zu den Aktualisierungsanweisungen von mongodb.com für das Upgrade von MongoDB.- MongoDB-Release-Notes – Upgrade von MongoDB
4.2auf4.4 - MongoDB-Release-Notes – Upgrade von MongoDB
4.4auf5.0 - MongoDB-Release-Notes – Upgrade von MongoDB
5.0auf6.0 - MongoDB-Release-Notes – Upgrade von MongoDB
6.0auf7.0 - MongoDB-Release-Notes – Upgrade von MongoDB
7.0auf8.0
Die Anweisungen für
5.0 und höher beziehen sich auf eine Replica-Set-Installation statt auf eine Standalone-Installation. Da Server Pro/CE ab 4.0.1 Transaktionen verwendet, muss MongoDB als Replica Set betrieben werden.- Setzen Sie das Kompatibilitäts-Flag wie in den MongoDB-Release-Notes beschrieben (siehe Beispiele unten).
- Aktualisieren Sie anschließend das Mongo-Image:
- Toolkit-Nutzer Aktualisieren Sie
MONGO_VERSION, z. B.MONGO_VERSION=6.0 - Docker Compose-Nutzer Aktualisieren Sie die Version des
mongo-Image-Tags,
z. B.services -> mongo -> image: mongo:6.0;
- Toolkit-Nutzer Aktualisieren Sie
5.0 auf 6.0
Stellen wir zunächst sicher, dass wir MongoDB 6.0 ausführen:
Nutzer des Overleaf Toolkit:
featureCompatibilityVersion auf 5.0 zu setzen. Dazu öffnen wir eine MongoDB-Shell und führen den angegebenen Befehl aus:
Nutzer des Overleaf Toolkit:
Docker Compose-Nutzer können
docker compose exec mongo mongosh ausführen, um eine Shell zu öffnen, und dieselben Befehle wie Toolkit-Nutzer ausführen.bin/stop, setzen MONGO_VERSION=6.0 in config/overleaf.rc und starten dann den Dienst mongo mit bin/up mongo neu, um zu überprüfen, ob die Aktualisierung reibungslos verlaufen ist.
Abschließend aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem Befehl bin/up -d neu.
Nutzer von Docker Compose:
Anschließend stoppen wir die Server CE/Server Pro- und MongoDB-Instanzen mit dem Befehl docker compose stop, passen die Datei docker-compose.yml so an, dass image: mongo:6.0 verwendet wird, und starten dann den Dienst mongo mit dem Befehl docker compose up mongo neu, um zu überprüfen, ob die Aktualisierung reibungslos verlaufen ist.
Abschließend aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem Befehl docker compose up neu.
Stellen Sie zunächst mit den oben genannten mongod --version-Befehlen sicher, dass Sie MongoDB 6.0 ausführen.
Laut den Upgrade-Anweisungen besteht die einzige Voraussetzung darin, featureCompatibilityVersion auf 6.0 zu setzen. Dazu öffnen wir eine MongoDB-Shell und führen den Befehl db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) aus.
Nutzer des Overleaf Toolkit:
bin/stop, setzen MONGO_VERSION=7.0 in config/overleaf.rc und starten dann den Dienst mongo mit bin/up mongo neu, um zu überprüfen, ob die Aktualisierung reibungslos verlaufen ist.
Abschließend aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem Befehl bin/up -d neu.
Stellen Sie zunächst mit den oben genannten mongod --version-Befehlen sicher, dass Sie MongoDB 7.0 ausführen.
Laut den Upgrade-Anweisungen besteht die einzige Voraussetzung darin, featureCompatibilityVersion auf 7.0 zu setzen. Dazu öffnen wir eine MongoDB-Shell und führen den Befehl db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }) aus. Beachten Sie, dass hierfür nun der zusätzliche Parameter confirm: true erforderlich ist.
bin/stop, setzen MONGO_VERSION=8.0 in config/overleaf.rc und starten dann den Dienst mongo mit bin/up mongo neu, um zu überprüfen, ob die Aktualisierung reibungslos verlaufen ist.
Abschließend aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem Befehl bin/up -d neu.
Entsprechende Befehle für Docker Compose-Nutzer
Für Docker Compose-Nutzer lauten die entsprechenden Befehle:docker compose exec mongo mongod --version, um die Mongo-Version anzuzeigendocker compose exec mongo mongosh, um eine Mongo-Shell für Admin-Befehle zu startendocker compose stop, um den Server zu stoppen- Bearbeiten Sie die Datei
docker-compose.ymlso, dassimage: mongo:6.0verwendet wird, um die Mongo-Version zu aktualisieren docker compose up mongo, um den Mongo-Dienst neu zu starten und zu überprüfen, ob die Aktualisierung reibungslos verlaufen ist- Bearbeiten Sie die Datei
docker-compose.ymlso, dassimage: sharelatex:VERSIONverwendet wird, um die Image-Version zu aktualisieren docker compose up, um alle Dienste neu zu erstellen.
Eine benutzerdefinierte Rolle erstellen
In Version5.5.1 haben wir eine Startprüfung eingeführt, die die Feature Compatibility Version von MongoDB überprüft. Wenn Ihre MongoDB-Datenbank Authentifizierung verwendet (z. B. Basic Authentication), startet der Container sharelatex möglicherweise nicht und zeigt den Berechtigungsfehler „not authorized on admin to execute command“ an.
Um dies zu beheben, können Sie entweder mithilfe der folgenden Anweisungen eine neue Rolle in MongoDB erstellen und sie dem Benutzerkonto zuweisen, das für den Datenbankzugriff verwendet wird, oder ALLOW_MONGO_ADMIN_CHECK_FAILURES=true setzen, damit die Prüfung fehlschlagen darf, ohne den Start der Bereitstellung zu verhindern.
Diese neue Rolle gewährt ausschließlich die Berechtigung, clusterweite MongoDB-Serverparameter zu lesen, und kann auch für Monitoring-Zwecke wiederverwendet werden.

