> 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/on-premises-no/vedlikehold/updating-mongodb.md).

# Oppdatere MongoDB

{% hint style="info" %}
Enhver ny utgivelse av Server CE/Server Pro vil angi enhver endring i den støttede versjonen av MongoDB i sine [utgivelsesnotatene](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Bør jeg oppdatere MongoDB?

Du bør **bare** vurdere å oppdatere MongoDB-versjonen din hvis du planlegger å oppgradere instansen din av Server CE/Server Pro.

Hvis du kjører en MongoDB-versjon som er nyere enn den anbefalte for din nåværende (eller mål-)versjon, er det ingen grunn til å gjøre noen endringer.

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

Hvis du opplever et spesifikt problem som du tror kan være relatert til din nåværende versjon av MongoDB, kan du gjerne [opprette en sak](https://github.com/overleaf/overleaf/issues) hvis du er en Server CE-bruker, eller kontakte Overleaf Support hvis du er en Server Pro-bruker.

### Kontroll av MongoDB-versjonen din

Å åpne `mongo` skallet bør umiddelbart skrive ut den nåværende versjonen.

Overleaf Toolkit-brukere:

```bash
bin/docker-compose exec mongo mongod --version
db-versjon v5.0.24
Byggeinfo: {
    "versjon": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "moduler": [],
    "allokator": "tcmalloc",
    "miljø": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Docker Compose-brukere:

```bash
docker compose exec mongo mongod --version
db-versjon v5.0.24
Byggeinfo: {
    "versjon": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "moduler": [],
    "allokator": "tcmalloc",
    "miljø": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Oppdateringsprosess

Å oppdatere MongoDB-versjonen under en oppgradering av din Server CE/Server Pro-instans er som følger:

1. Bestem hvilken versjon av Server CE/Server Pro du planlegger å oppgradere til.
2. Finn versjonen av MongoDB som anbefales av den spesifikke Overleaf Server CE/Server Pro-utgivelsen.
3. Følg instruksjonene for å oppgradere MongoDB til målversjonen.
4. Oppgrader Server CE/Server Pro-bildeversjonen og start instansen på nytt.

Vår anbefaling er alltid å oppgradere **Server CE/Server Pro** til den nyeste tilgjengelige versjonen, siden den alltid er garantert støttet (kun for Server Pro-brukere).

{% hint style="danger" %}
Når du utfører en oppgradering av Server CE/Pro, anbefaler vi å oppgradere til den nyeste utgivelsen av den distribuerte hovedversjonen **før** oppgraderer til den nyeste utgivelsen av den **neste** hovedversjonen. Hvis distribusjonen din er mer enn én hovedversjon bak den nyeste, må du utføre en flertrinns oppgradering.

For eksempel, hvis du kjører 3.5.10, må du oppgradere til 3.5.13 -> Utfør Full Project History-migreringen -> 4.2.9 -> 5.5.4.

Du bør **aldri** hoppe over hovedversjoner (3.5.10 -> 5.5.4). Hvis du bruker Toolkit, og er mer enn én hovedversjon bak den nyeste, må du **ikke** bruke `bin/upgrade` skriptet, ettersom du må utføre en manuell flertrinns oppgradering.
{% endhint %}

{% hint style="warning" %}
Det er viktig å sørge for at du tar en [konsistent sikkerhetskopi](/on-premises/on-premises-no/vedlikehold/data-and-backups.md#performing-a-consistent-backup) **før** for hver oppgradering av hovedversjon, slik at du kan rulle tilbake om du skulle trenge det.
{% endhint %}

#### Informasjon om versjonsstøtte

Hvis du bestemmer deg for å gå til en tidligere versjon, viser denne tabellen den anbefalte versjonen av MongoDB for tidligere utgivelser av Server CE/Server Pro, men du bør **aldri** nedgradere MongoDB-versjonen din.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB-versjon</th><th align="center">Minimumsversjon for funksjonskompatibilitet</th><th align="center">Maksimal versjon støttet av 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" %}
Minimumsversjonen for funksjonskompatibilitet ovenfor er basert på den tilsvarende MongoDB-versjonen anbefalt for bruk med versjonen av Overleaf som vises. Hvis du planlegger å bruke en høyere versjon, vil MongoDB ha sitt eget minimumskrav.
{% endhint %}

Du kan se kompatibilitetstabellen som spesifiserer de støttede versjonene av MongoDB Node.js-driveren for bruk med MongoDB [her](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Du kan se statusen for hver MongoDB-versjon ved slutten av levetiden [her](https://endoflife.date/mongodb).

#### Oppgradering av MongoDB

MongoDB krever **trinnvise oppgraderinger**. Det betyr at du ikke kan gå direkte fra, la oss si `4.0` til `5.0`. Du må først oppdatere `4.2` til `4.4`, og deretter `5.0`.

{% hint style="info" %}
MongoDB bruker partall for sine stabile versjoner.
{% endhint %}

#### **Oppdateringsinstruksjoner når du kjører MongoDB utenfor Docker**

Her er lenker til oppdateringsinstruksjonene fra mongodb.com når du oppgraderer MongoDB.

* [MongoDB-utgivelsesnotater - oppgradering av MongoDB fra `4.2` til `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-utgivelsesnotater - oppgradering av MongoDB fra `4.4` til `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-utgivelsesnotater - oppgradering av MongoDB fra `5.0` til `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-utgivelsesnotater - oppgradering av 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-utgivelsesnotater - oppgradering av 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" %}
Instruksjoner for `5.0` og høyere peker til en replika-sett-installasjon, i stedet for frittstående. Siden Server Pro/CE 4.0.1+ bruker transaksjoner, må MongoDB kjøres som et replika-sett.
{% endhint %}

{% hint style="warning" %}
Dokumentasjon for MongoDB 3.2 til 4.2 er nå tilgjengelig via <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Grunnleggende instruksjoner**

I de fleste tilfeller krever oppdateringen at du setter opp en kompatibilitetsflagg før du faktisk oppdaterer mongo-versjonen. Trinnene er som følger:

1. Sett kompatibilitetsflagget som beskrevet i MongoDB-utgivelsesnotatene (se eksemplene nedenfor).
2. Deretter oppdaterer du mongo-imaget:
   1. **Toolkit-brukere** Oppdater `MONGO_VERSION`, f.eks. `MONGO_VERSION=6.0`
   2. **Docker Compose-brukere** Oppdater versjonen av `mongo` bildemerket,\
      f.eks. `services -> mongo -> image: mongo:6.0`;

**Eksempel: Oppgradering av MongoDB fra `5.0` til `6.0`**

La oss starte med å sørge for at vi kjører MongoDB `6.0`:

Overleaf Toolkit-brukere:

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

Docker Compose-brukere:

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

I henhold til [oppgraderingsinstruksjonene](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), er det eneste kravet å ha `featureCompatibilityVersion` satt til `5.0`. Vi gjør det ved å åpne et MongoDB-skall og kjøre den angitte kommandoen:

Overleaf Toolkit-brukere:

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

{% hint style="info" %}
Docker Compose-brukere kan kjøre `docker compose exec mongo mongosh` for å få et skall og kjøre de samme kommandoene som Toolkit-brukere.
{% endhint %}

Overleaf Toolkit-brukere:

Vi vil deretter stoppe Server CE/Server Pro- og MongoDB-instansene ved å bruke `bin/stop` kommandoen, sett `MONGO_VERSION=6.0` i `config/overleaf.rc`, og deretter starte på nytt `mongo` tjenesten ved å bruke `bin/up mongo`) for å verifisere at oppdateringen gikk knirkefritt.

Til slutt oppdaterer vi Server CE/Server Pro-bildeversjonen til målversjonen vår og gjenskaper alle tjenestene ved å bruke `bin/up -d` kommandoen.

Docker Compose-brukere:

Vi vil deretter stoppe Server CE/Server Pro- og MongoDB-instansene ved å bruke `docker compose stop` kommandoen, oppdater [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til å bruke `image: mongo:6.0`, og deretter starte på nytt `mongo` tjenesten ved å bruke `docker compose up mongo` kommandoen for å verifisere at oppdateringen gikk knirkefritt.

Til slutt oppdaterer vi Server CE/Server Pro-bildeversjonen til målversjonen vår og gjenskaper alle tjenestene ved å bruke `docker compose up` kommandoen.

**Eksempel: Oppgradering av MongoDB fra `6.0` til `7.0` (Toolkit-brukere)**

Start med å sørge for at du kjører MongoDB `6.0` ved å bruke `mongod --version` kommandoene ovenfor.

I henhold til [oppgraderingsinstruksjonene](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), er det eneste kravet å ha `featureCompatibilityVersion` satt til `6.0`. Vi gjør det ved å åpne et MongoDB-skall og kjøre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Overleaf Toolkit-brukere:

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

Vi vil deretter stoppe Server CE/Server Pro- og MongoDB-instansene ved å bruke `bin/stop` kommandoen, sett `MONGO_VERSION=7.0` i `config/overleaf.rc`, og deretter starte på nytt `mongo` tjenesten ved å bruke `bin/up mongo`) for å verifisere at oppdateringen gikk knirkefritt.

Til slutt oppdaterer vi Server CE/Server Pro-bildeversjonen til målversjonen vår og gjenskaper alle tjenestene ved å bruke `bin/up -d` kommandoen.

**Eksempel: Oppgradering av MongoDB fra `7.0` til `8.0` (Toolkit-brukere)**

Start med å sørge for at du kjører MongoDB `7.0` ved å bruke `mongod --version` kommandoene ovenfor.

I henhold til [oppgraderingsinstruksjonene](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), er det eneste kravet å ha `featureCompatibilityVersion` satt til `7.0`. Vi gjør det ved å åpne et MongoDB-skall og kjøre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Merk at dette nå krever en ekstra `confirm: true` parameter.

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

Vi vil deretter stoppe Server CE/Server Pro- og MongoDB-instansene ved å bruke `bin/stop` kommandoen, sett `MONGO_VERSION=8.0` i `config/overleaf.rc`, og deretter starte på nytt `mongo` tjenesten ved å bruke `bin/up mongo`) for å verifisere at oppdateringen gikk knirkefritt.

Til slutt oppdaterer vi Server CE/Server Pro-bildeversjonen til målversjonen vår og gjenskaper alle tjenestene ved å bruke `bin/up -d` kommandoen.

#### Tilsvarende kommandoer for docker compose-brukere

For docker compose-brukere er de tilsvarende kommandoene:

* `docker compose exec mongo mongod --version` for å vise mongo-versjonen
* `docker compose exec mongo mongosh` for å starte et mongo-skall for admin-kommandoer
* `docker compose stop` kommando for å stoppe serveren
* Rediger [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til å bruke `image: mongo:6.0` for å oppgradere mongo-versjonen
* `docker compose up mongo` for å starte mongo-tjenesten på nytt og verifisere at oppdateringen gikk knirkefritt
* Rediger [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) filen til å bruke `image: sharelatex:VERSION` for å oppgradere bildeversjonen
* `docker compose up` for å gjenskape alle tjenester.

### Opprette en egendefinert rolle

I versjon `5.5.1`, introduserte vi en oppstartsjekk for å verifisere funksjonskompatibilitetsversjonen for MongoDB. Hvis MongoDB-databasen din bruker autentisering (f.eks. grunnleggende autentisering), kan `sharelatex` containeren kanskje ikke starte, og viser en "*ikke autorisert på admin til å utføre kommando*"-tillatelsesfeil.

For å løse dette kan du enten opprette en ny rolle i MongoDB og tildele den til brukerkontoen som brukes til å få tilgang til databasen ved å bruke instruksjonene nedenfor, eller sette `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` for å tillate at kontrollen mislykkes uten å forhindre at distribusjonen starter.

{% hint style="success" %}
Denne nye rollen **bare** gir tillatelse til å lese klyngeomfattende MongoDB-serverparametere og kan gjenbrukes til overvåkningsformål,
{% endhint %}

{% code overflow="wrap" %}

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

# Bytt til "admin"-databasen ved å bruke
overleaf [direct: primary] sharelatex> use admin
byttet til db admin
overleaf [direct: primary] admin> 

# Opprett en ny rolle med tillatelse til å bruke "getParamter". Kopier og lim inn funksjonen nedenfor i skallet og trykk Enter

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

# Bytt tilbake til "sharelatex"-databasen 
use sharelatex
byttet til db sharelatex
overleaf [direct: primary] sharelatex> 

# Tilordne den nye rollen "clusterParameterReader" til databasebrukeren din ved å kopiere og lime inn funksjonen nedenfor i skallet og trykk Enter 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Skriv exit og trykk Enter for å avslutte MongoDB-skallet
# Kjør bin/up -d for å starte distribusjonsstakken
$ 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/on-premises-no/vedlikehold/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.
