> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/de/wartung/updating-mongodb.md).

# MongoDB aktualisieren

{% hint style="info" %}
Jede neue Version von Server CE/Server Pro wird jede Änderung an der unterstützten MongoDB-Version in ihren [Versionshinweisen](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Sollte ich MongoDB aktualisieren?

Sie sollten **nur** Ihre MongoDB-Version nur dann aktualisieren, 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 Ziel-)Version empfohlene, müssen Sie keine Änderungen vornehmen.

{% hint style="warning" %}
Sie sollten Ihre MongoDB-Version niemals herabstufen.
{% endhint %}

Wenn bei Ihnen ein bestimmtes Problem auftritt, von dem Sie vermuten, dass es mit Ihrer aktuellen MongoDB-Version zusammenhängt, können Sie gerne [ein Issue eröffnen](https://github.com/overleaf/overleaf/issues) wenn Sie Server-CE-Benutzer sind, oder den Overleaf-Support kontaktieren, wenn Sie Server-Pro-Benutzer sind.

### Überprüfen Ihrer MongoDB-Version

Beim Öffnen der `mongo` Shell sollte sofort die aktuelle Version ausgegeben werden.

Benutzer des Overleaf Toolkit:

```bash
bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Benutzer von Docker Compose:

```bash
docker compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Update-Prozess

Die Aktualisierung der MongoDB-Version während des Upgrades Ihrer Server-CE-/Server-Pro-Instanz erfolgt wie folgt:

1. Entscheiden Sie sich für die Version von Server CE/Server Pro, auf die Sie aktualisieren möchten.
2. Finden Sie die von dieser spezifischen Overleaf-Server-CE/Server-Pro-Version empfohlene MongoDB-Version.
3. Befolgen Sie die Anweisungen, um MongoDB auf die Zielversion zu aktualisieren.
4. Aktualisieren Sie die Image-Version von Server CE/Server Pro und starten Sie die Instanz neu.

Unsere Empfehlung ist, immer **Server CE/Server Pro** auf die neueste verfügbare Version zu aktualisieren, da diese immer garantiert unterstützt wird (nur für Server-Pro-Benutzer).

{% hint style="danger" %}
Bei einem Upgrade von Server CE/Pro empfehlen wir, zunächst auf die neueste Veröffentlichung der eingesetzten Hauptversion zu aktualisieren **bevor** auf die neueste Veröffentlichung der **nächsten** Hauptversion zu aktualisieren. Wenn Ihre Bereitstellung mehr als eine Hauptversion hinter der neuesten zurückliegt, müssen Sie ein mehrstufiges Upgrade durchführen.

Wenn Sie beispielsweise 3.5.10 verwenden, müssen Sie auf 3.5.13 aktualisieren -> die Full-Project-History-Migration 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 zurückliegen, müssen Sie **nicht** das `bin/upgrade` Skript verwenden, da Sie ein manuelles mehrstufiges Upgrade durchführen müssen.
{% endhint %}

{% hint style="warning" %}
Es ist wichtig sicherzustellen, dass Sie ein [konsistentes Backup](/on-premises/de/wartung/data-and-backups.md#performing-a-consistent-backup) **bevor** bei jedem Upgrade auf eine Hauptversion erstellen, damit Sie bei Bedarf zurückrollen können.
{% endhint %}

#### Informationen zur Versionsunterstützung

Falls Sie sich entscheiden, zu einer früheren Version zu wechseln, zeigt diese Tabelle die empfohlene MongoDB-Version für frühere Versionen von Server CE/Server Pro, aber Sie sollten **niemals** Ihre MongoDB-Version herabstufen.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB-Version</th><th align="center">Mindestversion der Feature-Kompatibilität</th><th align="center">Maximal unterstützte Version durch den Node.js-Treiber</th></tr></thead><tbody><tr><td>2.0.x</td><td align="center">3.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>2.1.x bis 2.4.x</td><td align="center">3.6</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=2.5.0</td><td align="center">4.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.1.0</td><td align="center">4.2</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.2.0</td><td align="center">4.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=4.2.0</td><td align="center">5.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.1.0</td><td align="center">6.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.3.1</td><td align="center">6.0</td><td align="center">5.0</td><td align="center">8.0</td></tr><tr><td>>=5.5.0</td><td align="center">6.0</td><td align="center">6.0</td><td align="center">8.0</td></tr><tr><td>6.0.0</td><td align="center">8.0</td><td align="center">8.0</td><td align="center">8.0</td></tr></tbody></table>

{% hint style="danger" %}
Die oben genannte Mindestversion der Feature-Kompatibilität basiert auf der entsprechenden MongoDB-Version, die für die Verwendung mit der angezeigten Overleaf-Version empfohlen wird. Wenn Sie planen, eine höhere Version zu verwenden, gilt für MongoDB eine eigene Mindestanforderung.
{% endhint %}

Sie können die Kompatibilitätstabelle anzeigen, die die unterstützten Versionen des MongoDB Node.js-Treibers für die Verwendung mit MongoDB angibt [hier](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Sie können den End-of-Life-Status für jede MongoDB-Version einsehen [hier](https://endoflife.date/mongodb).

#### MongoDB aktualisieren

MongoDB erfordert **schrittweise Upgrades**. Das bedeutet, dass Sie nicht direkt von zum Beispiel `4.0` zu `5.0`. Sie müssen zunächst aktualisieren `4.2` zu `4.4`, und dann `5.0`.

{% hint style="info" %}
MongoDB verwendet gerade Zahlen für seine stabilen Versionen.
{% endhint %}

#### **Aktualisierungsanweisungen für den Betrieb von MongoDB außerhalb von Docker**

Hier sind Links zu den Aktualisierungsanweisungen von mongodb.com für das Upgrade von MongoDB.

* [MongoDB-Versionshinweise - Aktualisierung von MongoDB von `4.2` zu `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-Versionshinweise - Aktualisierung von MongoDB von `4.4` zu `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-Versionshinweise - Aktualisierung von MongoDB von `5.0` zu `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-Versionshinweise - Aktualisierung von MongoDB von `6.0` zu `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB-Versionshinweise - Aktualisierung von MongoDB von `7.0` zu `8.0`](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)

{% hint style="info" %}
Anweisungen für `5.0` und höher verweisen auf eine Installation als Replica Set statt als Einzelinstanz. Da Server Pro/CE 4.0.1+ Transaktionen verwendet, muss MongoDB als Replica Set ausgeführt werden.
{% endhint %}

{% hint style="warning" %}
Die Dokumentation für MongoDB 3.2 bis 4.2 ist jetzt verfügbar über <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Grundlegende Anweisungen**

In den meisten Fällen erfordert das Update das Einrichten eines Kompatibilitäts-Flags, bevor die MongoDB-Version tatsächlich aktualisiert wird. Die Schritte sind wie folgt:

1. Setzen Sie das Kompatibilitäts-Flag wie in den MongoDB-Versionshinweisen beschrieben (siehe die folgenden Beispiele).
2. Aktualisieren Sie dann das Mongo-Image:
   1. **Toolkit-Benutzer** Aktualisieren Sie `MONGO_VERSION`, z. B. `MONGO_VERSION=6.0`
   2. **Benutzer von Docker Compose** Aktualisieren Sie die Version des `mongo` Image-Tags,\
      z. B. `services -> mongo -> image: mongo:6.0`;

**Beispiel: Aktualisierung von MongoDB von `5.0` zu `6.0`**

Beginnen wir damit, sicherzustellen, dass wir MongoDB ausführen `6.0`:

Benutzer des Overleaf Toolkit:

```bash
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Benutzer von Docker Compose:

```bash
docker compose exec mongo mongod --version
# db version v5.0.24
```

Laut den [Aktualisierungsanweisungen](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), besteht die einzige Anforderung darin, dass `featureCompatibilityVersion` auf `5.0`. Dazu öffnen wir eine MongoDB-Shell und führen den angegebenen Befehl aus:

Benutzer des Overleaf Toolkit:

```bash
bin/mongo
# MongoDB shell version v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

{% hint style="info" %}
Benutzer von Docker Compose können `docker compose exec mongo mongosh` verwenden, um eine Shell zu öffnen und dieselben Befehle wie Toolkit-Benutzer auszuführen.
{% endhint %}

Benutzer des Overleaf Toolkit:

Anschließend stoppen wir die Server-CE-/Server-Pro- und MongoDB-Instanzen mit dem `bin/stop` Befehl, setzen `MONGO_VERSION=6.0` in `config/overleaf.rc`, und starten dann den `mongo` Dienst mit `bin/up mongo`) um zu überprüfen, dass das Update reibungslos verlief.

Schließlich aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem `bin/up -d` Befehl neu.

Benutzer von Docker Compose:

Anschließend stoppen wir die Server-CE-/Server-Pro- und MongoDB-Instanzen mit dem `docker compose stop` Befehl, aktualisieren Sie [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) Datei, um `image: mongo:6.0`, und starten dann den `mongo` Dienst mit dem `docker compose up mongo` Befehl, um zu überprüfen, dass das Update reibungslos verlief.

Schließlich aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mithilfe des `docker compose up` Befehl neu.

**Beispiel: Aktualisierung von MongoDB von `6.0` zu `7.0` (Toolkit-Benutzer)**

Beginnen Sie damit, sicherzustellen, dass Sie MongoDB ausführen `6.0` mithilfe der `mongod --version` oben genannten Befehle.

Laut den [Aktualisierungsanweisungen](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), besteht die einzige Anforderung darin, dass `featureCompatibilityVersion` auf `6.0`. Dazu öffnen wir eine MongoDB-Shell und führen den Befehl aus `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Benutzer des Overleaf Toolkit:

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Anschließend stoppen wir die Server-CE-/Server-Pro- und MongoDB-Instanzen mit dem `bin/stop` Befehl, setzen `MONGO_VERSION=7.0` in `config/overleaf.rc`, und starten dann den `mongo` Dienst mit `bin/up mongo`) um zu überprüfen, dass das Update reibungslos verlief.

Schließlich aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem `bin/up -d` Befehl neu.

**Beispiel: Aktualisierung von MongoDB von `7.0` zu `8.0` (Toolkit-Benutzer)**

Beginnen Sie damit, sicherzustellen, dass Sie MongoDB ausführen `7.0` mithilfe der `mongod --version` oben genannten Befehle.

Laut den [Aktualisierungsanweisungen](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), besteht die einzige Anforderung darin, dass `featureCompatibilityVersion` auf `7.0`. Dazu öffnen wir eine MongoDB-Shell und führen den Befehl aus `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Beachten Sie, dass dies jetzt zusätzlich `confirm: true` den Parameter confirm: true erfordert.

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Anschließend stoppen wir die Server-CE-/Server-Pro- und MongoDB-Instanzen mit dem `bin/stop` Befehl, setzen `MONGO_VERSION=8.0` in `config/overleaf.rc`, und starten dann den `mongo` Dienst mit `bin/up mongo`) um zu überprüfen, dass das Update reibungslos verlief.

Schließlich aktualisieren wir die Image-Version von Server CE/Server Pro auf unsere Zielversion und erstellen alle Dienste mit dem `bin/up -d` Befehl neu.

#### Entsprechende Befehle für Benutzer von Docker Compose

Für Benutzer von Docker Compose lauten die entsprechenden Befehle:

* `docker compose exec mongo mongod --version` um die MongoDB-Version anzuzeigen
* `docker compose exec mongo mongosh` um eine Mongo-Shell für Admin-Befehle zu starten
* `docker compose stop` Befehl zum Stoppen des Servers
* Bearbeiten Sie die [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) Datei, um `image: mongo:6.0` um die MongoDB-Version zu aktualisieren
* `docker compose up mongo` um den Mongo-Dienst neu zu starten und zu überprüfen, dass das Update reibungslos verlief
* Bearbeiten Sie die [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) Datei, um `image: sharelatex:VERSION` um die Image-Version zu aktualisieren
* `docker compose up` um alle Dienste neu zu erstellen.

### Erstellen einer benutzerdefinierten Rolle

In Version `5.5.1`, haben wir eine Startprüfung eingeführt, um die Feature-Kompatibilitätsversion für MongoDB zu überprüfen. Wenn Ihre MongoDB-Datenbank Authentifizierung verwendet (z. B. Basisauthentifizierung), könnte der `sharelatex` Container möglicherweise nicht starten und eine "*not authorized on admin to execute command*"-Berechtigungsfehler anzeigen.

Um dies zu beheben, können Sie entweder mit den folgenden Anweisungen eine neue Rolle in MongoDB erstellen und sie dem Benutzerkonto zuweisen, das für den Zugriff auf die Datenbank verwendet wird, oder `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` setzen, damit die Prüfung fehlschlagen darf, ohne den Start der Bereitstellung zu verhindern.

{% hint style="success" %}
Diese neue Rolle **nur** berechtigt zum Lesen clusterweiter MongoDB-Serverparameter und könnte für Überwachungszwecke wiederverwendet werden,
{% endhint %}

{% code overflow="wrap" %}

```bash
# Toolkit-Benutzer
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Wechseln Sie mit
overleaf [direct: primary] sharelatex> use admin
switched to db admin
overleaf [direct: primary] admin> 

# Erstellen Sie eine neue Rolle mit Berechtigung zur Verwendung von "getParamter". Kopieren und fügen Sie die folgende Funktion in die Shell ein und drücken Sie die Return-Taste

db.createRole(
  {
    role: "clusterParameterReader",
    privileges: [
      {
        resource: { cluster: true },
        actions: ["getParameter"]    
      }
    ],
    roles: [] 
  }
);

# Wechseln Sie zurück zur "sharelatex"-Datenbank 
use sharelatex
switched to db sharelatex
overleaf [direct: primary] sharelatex> 

# Weisen Sie die neue Rolle "clusterParameterReader" Ihrem Datenbankbenutzer zu, indem Sie die folgende Funktion in die Shell kopieren und einfügen und die Return-Taste drücken 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Geben Sie exit ein und drücken Sie dann die Eingabetaste, um die MongoDB-Shell zu beenden
# Führen Sie bin/up -d aus, um den Bereitstellungs-Stack zu starten
$ bin/up -d
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/de/wartung/updating-mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
