> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Oppdatere MongoDB

<Info>
  Alle nye utgivelser av Server CE/Server Pro vil oppgi eventuelle endringer i hvilken versjon av MongoDB som støttes, i [utgivelsesnotatene](https://docs.overleaf.com/on-premises/release-notes).
</Info>

### Bør jeg oppdatere MongoDB?

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

Hvis du kjører en MongoDB-versjon som er nyere enn den som anbefales for din nåværende versjon (eller målversjon), trenger du ikke å gjøre noen endringer.

<Warning>
  Du bør aldri nedgradere MongoDB-versjonen.
</Warning>

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

### Kontrollere MongoDB-versjonen

Når du åpner `mongo`-skallet, skal gjeldende versjon skrives ut umiddelbart.

Brukere av Overleaf Toolkit:

```bash theme={null}
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"
    }
}
```

Brukere av Docker Compose:

```bash theme={null}
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"
    }
}

```

### Oppdateringsprosess

Slik oppdaterer du MongoDB-versjonen under en oppgradering av Server CE/Server Pro-instansen:

1. Bestem hvilken versjon av Server CE/Server Pro du planlegger å oppgradere til.
2. Finn versjonen av MongoDB som anbefales for den aktuelle utgivelsen av Overleaf Server CE/Server Pro.
3. Følg instruksjonene for å oppgradere MongoDB til målversjonen.
4. Oppgrader image-versjonen av Server CE/Server Pro 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 Server Pro-brukere).

<Danger>
  Når du oppgraderer Server CE/Pro, anbefaler vi å oppgradere til den nyeste utgivelsen av den installerte hovedversjonen **før** du oppgraderer til den nyeste utgivelsen av **neste** hovedversjon. Hvis installasjonen din ligger mer enn én hovedversjon bak den nyeste, må du utføre en oppgradering i flere trinn.

  Hvis du for eksempel kjører 3.5.10, må du oppgradere til 3.5.13 -> utføre migreringen til Full Project History -> 4.2.9 -> 5.5.4.

  Du bør **aldri** hoppe over hovedversjoner (3.5.10 -> 5.5.4). Hvis du bruker Toolkit og ligger mer enn én hovedversjon bak den nyeste, må du **ikke** bruke skriptet `bin/upgrade`, siden du må utføre en manuell oppgradering i flere trinn.
</Danger>

<Warning>
  Det er viktig å sørge for at du tar en [konsistent sikkerhetskopi](/no/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) **før** hver oppgradering av hovedversjon, slik at du kan rulle tilbake ved behov.
</Warning>

#### Informasjon om versjonsstøtte

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

<div style={{ overflowX: "auto" }}><table style={{ display: "table", width: "100%" }}><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" style={{ textAlign: "center" }}>MongoDB-versjon</th><th style={{ textAlign: "center" }}>Minste versjon for funksjonskompatibilitet</th><th style={{ textAlign: "center" }}>Høyeste versjon som støttes av Node.js-driveren</th></tr></thead><tbody><tr><td>2.0.x</td><td style={{ textAlign: "center" }}>3.4</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>2.1.x til 2.4.x</td><td style={{ textAlign: "center" }}>3.6</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=2.5.0</td><td style={{ textAlign: "center" }}>4.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=3.1.0</td><td style={{ textAlign: "center" }}>4.2</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=3.2.0</td><td style={{ textAlign: "center" }}>4.4</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=4.2.0</td><td style={{ textAlign: "center" }}>5.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=5.1.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=5.3.1</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>5.0</td><td style={{ textAlign: "center" }}>8.0</td></tr><tr><td>>=5.5.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>8.0</td></tr><tr><td>6.0.0</td><td style={{ textAlign: "center" }}>8.0</td><td style={{ textAlign: "center" }}>8.0</td><td style={{ textAlign: "center" }}>8.0</td></tr></tbody></table></div>

<Danger>
  Den minste versjonen for funksjonskompatibilitet ovenfor er basert på den tilsvarende MongoDB-versjonen som anbefales for bruk med den viste versjonen av Overleaf. Hvis du planlegger å bruke en høyere versjon, vil MongoDB ha sitt eget minstekrav.
</Danger>

Du kan se kompatibilitetstabellen som angir hvilke versjoner av MongoDB Node.js-driveren som støttes for bruk med MongoDB, [her](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Du kan se status for slutt på levetid (end-of-life) for hver versjon av MongoDB [her](https://endoflife.date/mongodb).

#### Oppgradere MongoDB

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

<Info>
  MongoDB bruker partall for sine stabile versjoner.
</Info>

#### **Oppdateringsinstruksjoner når MongoDB kjøres utenfor Docker**

Her er lenker til oppdateringsinstruksjonene fra mongodb.com for oppgradering av MongoDB.

* [MongoDB-utgivelsesnotater – oppgradere MongoDB fra `4.2` til `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB-utgivelsesnotater – oppgradere MongoDB fra `4.4` til `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB-utgivelsesnotater – oppgradere MongoDB fra `5.0` til `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB-utgivelsesnotater – oppgradere 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 – oppgradere 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)

<Info>
  Instruksjonene for `5.0` og nyere gjelder en installasjon som replikasett (replica set) i stedet for frittstående. Siden Server Pro/CE 4.0.1+ bruker transaksjoner, må MongoDB kjøres som et replikasett.
</Info>

<Warning>
  Dokumentasjon for MongoDB 3.2 til 4.2 er nå tilgjengelig via [https://www.mongodb.com/docs/legacy/](https://www.mongodb.com/docs/legacy/)
</Warning>

**Grunnleggende instruksjoner**

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

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

**Eksempel: Oppgradere MongoDB fra `5.0` til `6.0`**

La oss begynne med å forsikre oss om at vi kjører MongoDB `6.0`:

Brukere av Overleaf Toolkit:

```bash theme={null}
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Brukere av Docker Compose:

```bash theme={null}
docker compose exec mongo mongod --version
# db version v5.0.24
```

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

Brukere av Overleaf Toolkit:

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

<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.
</Info>

Brukere av Overleaf Toolkit:

Deretter stopper vi Server CE/Server Pro- og MongoDB-instansene med kommandoen `bin/stop`, setter `MONGO_VERSION=6.0` i `config/overleaf.rc`, og starter deretter `mongo`-tjenesten på nytt med `bin/up mongo`) for å bekrefte at oppdateringen gikk greit.

Til slutt oppdaterer vi image-versjonen av Server CE/Server Pro til målversjonen og gjenoppretter alle tjenestene med kommandoen `bin/up -d`.

Brukere av Docker Compose:

Deretter stopper vi Server CE/Server Pro- og MongoDB-instansene med kommandoen `docker compose stop`, oppdaterer filen [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) til å bruke `image: mongo:6.0`, og starter deretter `mongo`-tjenesten på nytt med kommandoen `docker compose up mongo` for å bekrefte at oppdateringen gikk greit.

Til slutt oppdaterer vi image-versjonen av Server CE/Server Pro til målversjonen og gjenoppretter alle tjenestene med kommandoen `docker compose up`.

<strong>Eksempel: Oppgradere MongoDB fra `6.0` til `7.0` (Toolkit-brukere)</strong>

Begynn med å forsikre deg om at du kjører MongoDB `6.0` ved hjelp av `mongod --version`-kommandoene ovenfor.

Ifølge [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 at `featureCompatibilityVersion` er satt til `6.0`. Det gjør vi ved å åpne et MongoDB-skall og kjøre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Brukere av Overleaf Toolkit:

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

Deretter stopper vi Server CE/Server Pro- og MongoDB-instansene med kommandoen `bin/stop`, setter `MONGO_VERSION=7.0` i `config/overleaf.rc`, og starter deretter `mongo`-tjenesten på nytt med `bin/up mongo`) for å bekrefte at oppdateringen gikk greit.

Til slutt oppdaterer vi image-versjonen av Server CE/Server Pro til målversjonen og gjenoppretter alle tjenestene med kommandoen `bin/up -d`.

<strong>Eksempel: Oppgradere MongoDB fra `7.0` til `8.0` (Toolkit-brukere)</strong>

Begynn med å forsikre deg om at du kjører MongoDB `7.0` ved hjelp av `mongod --version`-kommandoene ovenfor.

Ifølge [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 at `featureCompatibilityVersion` er satt til `7.0`. Det gjør vi ved å åpne et MongoDB-skall og kjøre kommandoen `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Merk at dette nå krever en ekstra parameter, `confirm: true`.

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

Deretter stopper vi Server CE/Server Pro- og MongoDB-instansene med kommandoen `bin/stop`, setter `MONGO_VERSION=8.0` i `config/overleaf.rc`, og starter deretter `mongo`-tjenesten på nytt med `bin/up mongo`) for å bekrefte at oppdateringen gikk greit.

Til slutt oppdaterer vi image-versjonen av Server CE/Server Pro til målversjonen og gjenoppretter alle tjenestene med kommandoen `bin/up -d`.

#### 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 administrasjonskommandoer
* Kommandoen `docker compose stop` for å stoppe serveren
* Rediger filen [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) til å bruke `image: mongo:6.0` for å oppgradere mongo-versjonen
* `docker compose up mongo` for å starte mongo-tjenesten på nytt og bekrefte at oppdateringen gikk greit
* Rediger filen [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) til å bruke `image: sharelatex:VERSION` for å oppgradere image-versjonen
* `docker compose up` for å gjenopprette alle tjenestene.

### Opprette en egendefinert rolle

I versjon `5.5.1` innførte vi en kontroll ved oppstart som verifiserer versjonen for funksjonskompatibilitet i MongoDB. Hvis MongoDB-databasen din bruker autentisering (f.eks. grunnleggende autentisering), kan det hende at `sharelatex`-containeren ikke starter og viser tillatelsesfeilen "*not authorized on admin to execute command*".

For å løse dette kan du enten opprette en ny rolle i MongoDB og tildele den til brukerkontoen som brukes for å få tilgang til databasen, ved hjelp av instruksjonene nedenfor, eller sette `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` slik at kontrollen kan mislykkes uten å hindre installasjonen i å starte.

<Check>
  Denne nye rollen gir **kun** tillatelse til å lese MongoDB-serverparametere for hele klyngen og kan gjenbrukes til overvåkingsformål,
</Check>

```bash wrap theme={null}
# Toolkit users
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Switch to the "admin" database using
overleaf [direct: primary] sharelatex> use admin
switched to db admin
overleaf [direct: primary] admin> 

# Create a new role with permission to use "getParamter". Copy and paste the function below into the shell and press the return key

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

# Switch back to the "sharelatex" database 
use sharelatex
switched to db sharelatex
overleaf [direct: primary] sharelatex> 

# Assign the new "clusterParameterReader" role to your database user by copy and pasting the function below into the shell and press the return key 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Type exit then return to exit the MongoDB shell
# Run bin/up -d to start the deployment stack
$ bin/up -d
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.