> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/on-premises/da/vedligeholdelse/updating-mongodb.md).

# Opdatering af MongoDB

{% hint style="info" %}
Enhver ny udgivelse af Server CE/Server Pro vil angive eventuelle ændringer i den understøttede version af MongoDB i sine [udgivelsesnoter](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Skal jeg opdatere MongoDB?

Du bør **kun** overveje at opdatere din MongoDB-version, hvis du planlægger at opgradere din Server CE/Server Pro-instans.

Hvis du kører en MongoDB-version, der er nyere end den anbefalede for din nuværende (eller mål-)version, er der ingen grund til at foretage ændringer.

{% hint style="warning" %}
Du bør aldrig nedgradere din MongoDB-version.
{% endhint %}

Hvis du oplever et specifikt problem, som du tror kan være relateret til din nuværende MongoDB-version, er du velkommen til at [oprette et issue](https://github.com/overleaf/overleaf/issues) hvis du er Server CE-bruger, eller kontakte Overleaf Support, hvis du er Server Pro-bruger.

### Tjek af din MongoDB-version

Hvis du åbner `mongo` shellen bør den aktuelle version med det samme blive udskrevet.

Overleaf Toolkit-brugere:

```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"
    }
}
```

Docker Compose-brugere:

```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"
    }
}

```

### Opdateringsproces

Opdatering af MongoDB-versionen under en opgradering af din Server CE/Server Pro-instans foregår som følger:

1. Beslut, hvilken version af Server CE/Server Pro du planlægger at opgradere til.
2. Find den MongoDB-version, som anbefales af netop den Overleaf Server CE/Server Pro-udgivelse.
3. Følg instruktionerne for at opgradere MongoDB til målversionen.
4. Opgrader image-versionen af Server CE/Server Pro, og genstart instansen.

Vores anbefaling er altid at opgradere **Server CE/Server Pro** til den seneste tilgængelige version, da den altid er garanteret at være understøttet (kun Server Pro-brugere).

{% hint style="danger" %}
Når du udfører en opgradering af Server CE/Pro, anbefaler vi at opgradere til den seneste udgivelse af den implementerede hovedversion **før** opgradering til den seneste udgivelse af den **næste** hovedversion. Hvis din installation er mere end én hovedversion bag den seneste, vil du blive nødt til at foretage en opgradering i flere trin.

For eksempel, hvis du kører 3.5.10, skal du opgradere til 3.5.13 -> Udfør migreringen af den fulde projekthistorik -> 4.2.9 -> 5.5.4.

Du bør **aldrig** springe hovedversioner over (3.5.10 -> 5.5.4). Hvis du bruger Toolkit og er mere end én hovedversion bag den seneste, skal du **ikke** bruge `bin/upgrade` scriptet, da du bliver nødt til at udføre en manuel opgradering i flere trin.
{% endhint %}

{% hint style="warning" %}
Det er vigtigt at sikre, at du tager en [konsistent backup](/on-premises/da/vedligeholdelse/data-and-backups.md#performing-a-consistent-backup) **før** ved hver opgradering til en hovedversion, så du kan rulle tilbage, hvis du får brug for det.
{% endhint %}

#### Versionsunderstøttelsesinformation

Hvis du beslutter dig for at gå til en tidligere version, viser denne tabel den anbefalede MongoDB-version for tidligere udgivelser af Server CE/Server Pro, men du bør **aldrig** ikke nedgradere din MongoDB-version.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB-version</th><th align="center">Minimum Feature Compatibility Version</th><th align="center">Maksimal version understøttet af Node.js-driveren</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 til 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" %}
Den ovenstående minimumsversion for feature compatibility er baseret på den tilsvarende MongoDB-version, der anbefales til brug med den viste Overleaf-version. Hvis du planlægger at bruge en højere version, vil MongoDB have sit eget minimumskrav.
{% endhint %}

Du kan se kompatibilitetstabellen, der angiver de understøttede versioner af MongoDB Node.js-driveren til brug med MongoDB [her](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Du kan se udløbsstatus for hver version af MongoDB [her](https://endoflife.date/mongodb).

#### Opgradering af MongoDB

MongoDB kræver **opgraderinger trin for trin**. Det betyder, at du ikke kan gå direkte fra for eksempel `4.0` til `5.0`. Du skal først opdatere `4.2` til `4.4`, og derefter `5.0`.

{% hint style="info" %}
MongoDB bruger lige tal til deres stabile versioner.
{% endhint %}

#### **Opdateringsinstruktioner ved kørsel af MongoDB uden for Docker**

Her er links til opdateringsinstruktionerne fra mongodb.com, når du opgraderer MongoDB.

* [MongoDB-udgivelsesnoter - opgradering af MongoDB fra `4.2` til `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-udgivelsesnoter - opgradering af MongoDB fra `4.4` til `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-udgivelsesnoter - opgradering af MongoDB fra `5.0` til `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-udgivelsesnoter - opgradering af MongoDB fra `6.0` til `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB-udgivelsesnoter - opgradering af MongoDB fra `7.0` til `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" %}
Instruktioner for `5.0` og højere peger på en replica set-installation i stedet for standalone. Da Server Pro/CE 4.0.1+ bruger transaktioner, skal MongoDB køres som et replica set.
{% endhint %}

{% hint style="warning" %}
Dokumentation for MongoDB 3.2 til 4.2 er nu tilgængelig via <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Grundlæggende instruktioner**

I de fleste tilfælde kræver opdateringen, at du konfigurerer et kompatibilitetsflag, før du faktisk opdaterer mongo-versionen. Trinnene er som følger:

1. Sæt kompatibilitetsflaget som beskrevet i MongoDB-udgivelsesnoterne (se eksemplerne nedenfor).
2. Opdater derefter mongo-image'et:
   1. **Toolkit-brugere** Opdater `MONGO_VERSION`, f.eks. `MONGO_VERSION=6.0`
   2. **Docker Compose-brugere** Opdater versionen af `mongo` image-tagget,\nf.eks. `services -> mongo -> image: mongo:6.0`;

**Eksempel: Opgradering af MongoDB fra `5.0` til `6.0`**

Lad os starte med at sikre, at vi kører MongoDB `6.0`:

Overleaf Toolkit-brugere:

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

Docker Compose-brugere:

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

Ifølge [opgraderingsinstruktionerne](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), er det eneste krav at have `featureCompatibilityVersion` sat til `5.0`. Det gør vi ved at åbne en MongoDB-shell og køre den angivne kommando:

Overleaf Toolkit-brugere:

```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" %}
Docker Compose-brugere kan køre `docker compose exec mongo mongosh` for at få en shell og køre de samme kommandoer som Toolkit-brugere.
{% endhint %}

Overleaf Toolkit-brugere:

Derefter stopper vi Server CE/Server Pro- og MongoDB-instanserne ved hjælp af `bin/stop` kommandoen, sæt `MONGO_VERSION=6.0` i `config/overleaf.rc`, og genstart derefter `mongo` tjenesten ved hjælp af `bin/up mongo`) for at bekræfte, at opdateringen forløb gnidningsfrit.

Til sidst opdaterer vi Server CE/Server Pro-image-versionen til vores målversion og genskaber alle tjenester ved hjælp af `bin/up -d` kommandoen.

Docker Compose-brugere:

Derefter stopper vi Server CE/Server Pro- og MongoDB-instanserne ved hjælp af `docker compose stop` kommandoen, opdater [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til at bruge `image: mongo:6.0`, og genstart derefter `mongo` tjenesten ved hjælp af `docker compose up mongo` kommandoen for at bekræfte, at opdateringen forløb gnidningsfrit.

Til sidst opdaterer vi Server CE/Server Pro-image-versionen til vores målversion og genskaber alle tjenester ved hjælp af `docker compose up` kommandoen.

**Eksempel: Opgradering af MongoDB fra `6.0` til `7.0` (Toolkit-brugere)**

Start med at sikre, at du kører MongoDB `6.0` ved hjælp af `mongod --version` kommandoerne ovenfor.

Ifølge [opgraderingsinstruktionerne](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), er det eneste krav at have `featureCompatibilityVersion` sat til `6.0`. Det gør vi ved at åbne en MongoDB-shell og køre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Overleaf Toolkit-brugere:

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

Derefter stopper vi Server CE/Server Pro- og MongoDB-instanserne ved hjælp af `bin/stop` kommandoen, sæt `MONGO_VERSION=7.0` i `config/overleaf.rc`, og genstart derefter `mongo` tjenesten ved hjælp af `bin/up mongo`) for at bekræfte, at opdateringen forløb gnidningsfrit.

Til sidst opdaterer vi Server CE/Server Pro-image-versionen til vores målversion og genskaber alle tjenester ved hjælp af `bin/up -d` kommandoen.

**Eksempel: Opgradering af MongoDB fra `7.0` til `8.0` (Toolkit-brugere)**

Start med at sikre, at du kører MongoDB `7.0` ved hjælp af `mongod --version` kommandoerne ovenfor.

Ifølge [opgraderingsinstruktionerne](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), er det eneste krav at have `featureCompatibilityVersion` sat til `7.0`. Det gør vi ved at åbne en MongoDB-shell og køre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Bemærk, at dette nu kræver en ekstra `confirm: true` parameter.

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

Derefter stopper vi Server CE/Server Pro- og MongoDB-instanserne ved hjælp af `bin/stop` kommandoen, sæt `MONGO_VERSION=8.0` i `config/overleaf.rc`, og genstart derefter `mongo` tjenesten ved hjælp af `bin/up mongo`) for at bekræfte, at opdateringen forløb gnidningsfrit.

Til sidst opdaterer vi Server CE/Server Pro-image-versionen til vores målversion og genskaber alle tjenester ved hjælp af `bin/up -d` kommandoen.

#### Tilsvarende kommandoer for docker compose-brugere

For Docker Compose-brugere er de tilsvarende kommandoer:

* `docker compose exec mongo mongod --version` for at vise mongo-versionen
* `docker compose exec mongo mongosh` for at starte en mongo-shell til admin-kommandoer
* `docker compose stop` kommandoen for at stoppe serveren
* Redigér [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til at bruge `image: mongo:6.0` for at opgradere mongo-versionen
* `docker compose up mongo` for at genstarte mongo-tjenesten og bekræfte, at opdateringen forløb gnidningsfrit
* Redigér [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til at bruge `image: sharelatex:VERSION` for at opgradere image-versionen
* `docker compose up` for at genskabe alle tjenester.

### Oprettelse af en brugerdefineret rolle

I version `5.5.1`, introducerede vi et opstartstjek for at verificere feature compatibility-versionen for MongoDB. Hvis din MongoDB-database bruger autentificering (f.eks. grundlæggende autentificering), kan `sharelatex` containeren muligvis ikke starte og vise en "*ikke autoriseret på admin til at udføre kommando*"-tilladelsesfejl.

For at løse dette kan du enten oprette en ny rolle i MongoDB og tildele den til den brugerkonto, der bruges til at få adgang til databasen, ved at følge instruktionerne nedenfor, eller sætte `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` for at tillade, at tjekket fejler, uden at forhindre udrulningen i at starte.

{% hint style="success" %}
Denne nye rolle **kun** giver tilladelse til at læse klyngeomfattende MongoDB-serverparametre og kan genbruges til overvågningsformål,
{% endhint %}

{% code overflow="wrap" %}

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

# Skift til databasen "admin" ved at bruge
overleaf [direct: primary] sharelatex> use admin
skiftet til db admin
overleaf [direct: primary] admin> 

# Opret en ny rolle med tilladelse til at bruge "getParamter". Kopiér og indsæt funktionen nedenfor i shellen, og tryk på returtasten

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

# Skift tilbage til databasen "sharelatex" 
use sharelatex
skiftet til db sharelatex
overleaf [direct: primary] sharelatex> 

# Tildel den nye rolle "clusterParameterReader" til din databasebruger ved at kopiere og indsætte funktionen nedenfor i shellen og trykke på returtasten 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Skriv exit og tryk derefter på returtasten for at afslutte MongoDB-shellen
# Kør bin/up -d for at starte udrulningsstakken
$ 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://overleaf-pro.ayaka.space/on-premises/da/vedligeholdelse/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.
