> 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/da/vedligeholdelse/updating-mongodb.md).

# Opdatering af MongoDB

{% hint style="info" %}
Enhver ny udgivelse af Server CE/Server Pro vil angive enhver ændring 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 instans af Server CE/Server Pro.

Hvis du kører en MongoDB-version, der er nyere end den anbefalede til din nuværende (eller mål-) version, er der ingen grund til at foretage nogen æ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 version af MongoDB, er du velkommen til at [oprette et issue](https://github.com/overleaf/overleaf/issues) hvis du er en Server CE-bruger, eller kontakt Overleaf Support, hvis du er en Server Pro-bruger.

### Kontrol af din MongoDB-version

Åbning af `mongo` shellen bør straks udskrive den aktuelle version.

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

Brugere af 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"
    }
}

```

### 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 version af MongoDB, der anbefales til netop den pågældende Overleaf Server CE/Server Pro-udgivelse.
3. Følg instruktionerne for at opgradere MongoDB til målversionen.
4. Opgrader Server CE/Server Pro-billedversionen og genstart instansen.

Vores anbefaling er altid at opgradere **Server CE/Server Pro** til den nyeste tilgængelige version, da den altid er garanteret at være understøttet (kun for 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 installerede hovedversion **før** at opgradere til den seneste udgivelse af den **næste** hovedversion. Hvis din installation er mere end én hovedversion bagud i forhold til den nyeste, vil du være nødt til at udføre 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 bagud i forhold til den nyeste, 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 sikkerhedskopi](/on-premises/da/vedligeholdelse/data-and-backups.md#performing-a-consistent-backup) **før** ved hver opgradering til en ny hovedversion, så du kan rulle tilbage, hvis du får brug for det.
{% endhint %}

#### Versionssupportinformation

Hvis du beslutter at gå tilbage til en tidligere version, viser denne tabel den anbefalede MongoDB-version til tidligere udgivelser af Server CE/Server Pro, men du bør **aldrig** 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 featurekompatibilitetsversion</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 featurekompatibilitet 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 supportophørsstatus for hver version af MongoDB [her](https://endoflife.date/mongodb).

#### Opgradering af MongoDB

MongoDB kræver **trinvise opgraderinger**. Det betyder, at du ikke kan gå direkte fra, lad os sige `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 for sine 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 til `5.0` og højere peger på en installation af et replikasæt i stedet for standalone. Da Server Pro/CE 4.0.1+ bruger transaktioner, skal MongoDB køres som et replikasæt.
{% 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 sætter et kompatibilitetsflag op, 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-imaget:
   1. **Brugere af Toolkit** Opdater `MONGO_VERSION`, f.eks. `MONGO_VERSION=6.0`
   2. **Brugere af Docker Compose** 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`:

Brugere af Overleaf Toolkit:

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

Brugere af Docker Compose:

```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:

Brugere af Overleaf Toolkit:

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

{% hint style="info" %}
Brugere af Docker Compose kan køre `docker compose exec mongo mongosh` for at få en shell og køre de samme kommandoer som brugere af Toolkit.
{% endhint %}

Brugere af Overleaf Toolkit:

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

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

Brugere af Docker Compose:

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, så den bruger `image: mongo:6.0`, og genstarter derefter `mongo` tjenesten ved hjælp af `docker compose up mongo` kommando for at verificere, at opdateringen forløb gnidningsfrit.

Til sidst opdaterer vi Server CE/Server Pro-billedversionen 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` (brugere af Toolkit)**

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

Brugere af Overleaf Toolkit:

```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ætter `MONGO_VERSION=7.0` i `config/overleaf.rc`, og genstarter derefter `mongo` tjenesten ved hjælp af `bin/up mongo`) for at verificere, at opdateringen forløb gnidningsfrit.

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

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

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ætter `MONGO_VERSION=8.0` i `config/overleaf.rc`, og genstarter derefter `mongo` tjenesten ved hjælp af `bin/up mongo`) for at verificere, at opdateringen forløb gnidningsfrit.

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

#### Tilsvarende kommandoer for brugere af docker compose

For brugere af docker compose 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` kommando til at stoppe serveren
* Rediger [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen, så den bruger `image: mongo:6.0` for at opgradere mongo-versionen
* `docker compose up mongo` for at genstarte mongo-tjenesten og verificere, at opdateringen forløb gnidningsfrit
* Rediger [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen, så den bruger `image: sharelatex:VERSION` for at opgradere billedversionen
* `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 featurekompatibilitetsversionen for MongoDB. Hvis din MongoDB-database bruger autentificering (f.eks. basal autentificering), `sharelatex` containeren starter muligvis ikke og viser en "*not authorized on admin to execute command*" 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 hjælp af instruktionerne nedenfor, eller sætte `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` for at tillade, at tjekket fejler uden at forhindre, at udrulningen starter.

{% 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
# Brugere af Toolkit
$ 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
skiftede 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
skiftede til db sharelatex
overleaf [direct: primary] sharelatex> 

# Tildel den nye "clusterParameterReader"-rolle 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å Enter 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://ayakaleaf-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.
