> 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/stotte/support-guides/doc-version-recovery.md).

# (v5.0.1-migrering) Gjenoppretting av dokumentversjon

{% hint style="info" %}
Hvis du aldri kjørte Server Pro versjon 5.0.1 eller Community Edition versjon 5.0.1, eller du startet en helt ny instans med 5.0.1, trenger du ikke å kjøre denne gjenopprettingsprosessen.
{% endhint %}

**Oppdateringer til denne siden:**

* (2024-04-22 13:40 BST): La til trinnet "Stopp nye oppdateringer fra å komme inn i systemet og tøm alle endringer til MongoDB".
* (2024-04-23 11:45 BST): Ta hensyn til ødelagte tømminger i 5.0.1 og hopp over tømminger når 5.0.2 ble startet.

Varigheten av gjenopprettingen vil avhenge av antallet og størrelsen på prosjektene i instansen din og lagringsbackend-en som brukes av historielageret for chunks (som definert i `OVERLEAF_HISTORY_CHUNKS_BUCKET`).

Gjenopprettingsprosessen vil forsinke oppstarten av applikasjonen inne i Server Pro-containeren. Nettstedet vil fremstå som offline i den perioden. Vi støtter bare å kjøre gjenopprettingen fra én enkelt instans av Server Pro-containeren; alle andre workers for horisontal skalering må være offline.

Du kan stoppe og gjenoppta gjenopprettingsprosessen om nødvendig.

Basert på ytelsestestene våre kan gjenopprettingsprosessen behandle omtrent 10k små prosjekter per minutt på moderne maskinvare (3GHz CPU-klokkefrekvens og lokal NVMe-lagring). Som et eksempel, for en instans med 100k prosjekter, planlegg et vedlikeholdsvindu som tillater minst 10+2 min nedetid. Bruk følgende spørring for å estimere antallet prosjekter i instansen din:

{% code overflow="wrap" %}

```bash
$ docker exec mongo mongosh sharelatex --quiet --eval 'db.projects.estimatedDocumentCount() + db.deletedProjects.estimatedDocumentCount()'
```

{% endcode %}

Vennligst les gjennom de følgende gjenopprettingstrinnene i sin helhet før du starter. Server Pro-kunder er mer enn velkomne til å ta kontakt med <support@overleaf.com> med eventuelle spørsmål.

### Gjenopprettingsprosess

{% stepper %}
{% step %}

#### Hent utgivelsesbilder

Hent `5.0.3` utgivelsesbildene.
{% endstep %}

{% step %}

#### Identifiser noen få prosjekter

Identifiser noen få prosjekter etter id som mangler historikk; ideelt sett har du tillatelse til å gjøre en endring i ett av dem.
{% endstep %}

{% step %}

#### Planlegg vedlikehold

Planlegg et vedlikeholdsvindu for nedetiden.
{% endstep %}

{% step %}

#### Stopp alle unntatt én worker

Stopp alle unntatt én worker når du bruker et oppsett for horisontal skalering.
{% endstep %}

{% step %}

#### Stopp nye oppdateringer og tøm alle endringer til MongoDB

Stopp nye oppdateringer fra å komme inn i systemet og tøm alle endringer til MongoDB:

1. Steng editoren og koble alle brukere fra manuelt via administrasjonspanelet på `https://my-server-pro.example.com/admin#open-close-editor` i fanen "Åpne/Lukke editor".
2. Stopp WebSocket-/sanntidstjenesten.

   ```bash
   $ docker exec sharelatex sv stop real-time-overleaf
   ```
3. Vent til sanntidstjenesten avsluttes, som indikert av `down:`.

   ```bash
   $ docker exec sharelatex sv status real-time-overleaf
   run: real-time-sharelatex: (pid 394) 50s, want down, got TERM
   # vent litt lenger...

   $ docker exec sharelatex sv status real-time-overleaf
   down: real-time-sharelatex: 7s, normally up
   ```
4. Stopp git-bridge-containeren hvis den er aktiv.

   ```bash
   $ docker stop git-bridge
   ```
5. Hvis du aldri kjørte 5.0.2: Utfør en manuell tømming for dokumentoppdateringer og vent til den fullføres med suksess.

   Du kan gjenta kommandoen ved feil. Hvis du ser en ikke-null `failureCount` i påfølgende kjøringer, vennligst stopp migreringen (gjenopprett tjenestene via `docker restart git-bridge sharelatex`) og ta kontakt med support.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex bash -c 'source /etc/container_environment.sh &#x26;&#x26; source /etc/overleaf/env.sh &#x26;&#x26; cd services/document-updater &#x26;&#x26; LOG_LEVEL=info node scripts/flush_all.js'
   ...
   {"name":"default","hostname":"...","pid":324,"level":30,"successCount":...,"failureCount":0,"msg":"ferdig med å tømme alle prosjekter","time":"...","v":0}
   Tømming av alle prosjekter fullført
   </code></pre>
6. Hvis du aldri kjørte 5.0.2: Sørg for at alle endringer har blitt tømt ut av Redis.

   Hvis du får noen utdata fra `redis-cli`, vennligst stopp migreringen (gjenopprett tjenestene via `docker restart git-bridge sharelatex`) og ta kontakt med support.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec redis redis-cli --scan --pattern 'DocVersion:*'
   # ingen utdata fra redis-cli indikerer suksess, sjekk deretter returverdien til redis-cli, den skal være null
   $ echo $?
   0
   </code></pre>
7. Prøv å tømme eventuelle ventende historikkendringer.

   Dette må være en tømming etter beste evne, ettersom noen prosjekter har ødelagt historikk på grunn av den dårlige database-migreringen. Eventuelle feil vil bli håndtert med en resynk av historikken på slutten av gjenopprettingsprosessen.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex bash -c 'source /etc/container_environment.sh &#x26;&#x26; source /
   </code></pre>

{% endstep %}

{% step %}

#### Ta en sikkerhetskopi

Vurder å ta en [konsistent sikkerhetskopi](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) av instansen.
{% endstep %}

{% step %}

#### Oppgrader

Oppgrader til versjon `5.0.3`.
{% endstep %}

{% step %}

#### Automatisk gjenoppretting

Gjenopprettingsprosessen kjøres automatisk ved oppstart av containeren.
{% endstep %}

{% step %}

#### Følg fremdriften

Du kan følge fremdriften til skriptet ved å følge loggfilen `/var/lib/overleaf/data/history/doc-version-recovery.log`. Den vil skrive ut totalt antall prosjekter i starten og en oppsummering etter hver 1000 behandlede prosjekter.

{% code overflow="wrap" %}

```bash
$ docker exec sharelatex tail --retry --follow /var/lib/overleaf/data/history/doc-vers
```

{% endcode %}
{% endstep %}

{% step %}

#### Vent til gjenopprettingsprosessen er ferdig

Vent til gjenopprettingsprosessen er ferdig ved enten å følge loggfilen ovenfor til en `Ferdig.` linje er skrevet ut eller ved å vente på `Gjenoppretting av doc-versjoner fullført.` skal skrives ut til standardutdata for Server Pro-containeren.
{% endstep %}

{% step %}

#### Valider gjenopprettingsprosessen

Valider gjenopprettingsprosessen ved å åpne historikkpanelet for noen av prosjektene som tidligere manglet historikk.

1. Fremskynd resynken for prosjektene som skal testes (de vil bli behandlet etter hvert, men vi ønsker ikke å vente på at de får sin tur.)

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex curl -X POST --silent "http://127.0.0.1:3054/project/000000000000000000000000/resync?force=true"
   </code></pre>

   (Gjenta med hver av prosjekt-ID-ene som skal testes, erstatt `000000000000000000000000` med én prosjekt-ID om gangen.)
2. Åpne prosjektredigereren for prosjektene `https://my-server-pro-example.com/project/000000000000000000000000`
3. Åpne fanen "Historikk" for prosjektet og se det nyeste innholdet.
4. Valgfritt: Lukk "Historikk"-fanen igjen. Gjør en kodeendring, for eksempel ved å legge til en kommentar i headeren.
5. Valgfritt: Utfør en ny kompilering for å utløse en tømming av den lokale endringen. Åpne "Historikk"-fanen igjen og se endringen. Når du er ferdig, angre endringen.
   {% endstep %}

{% step %}

#### For horisontal skalering...

Start de andre workerne igjen.
{% endstep %}

{% step %}

#### Hold instansen i gang

Vennligst la instansen som kjørte gjenopprettingsprosessen fortsette å kjøre. Den vil resynke historikken for alle prosjekter i bakgrunnen med en samtidighet på 1. Dette vil resultere i litt høyere grunnbelastning. (Du kan starte instansen på nytt, men da må den begynne på nytt med resynkene.)
{% endstep %}

{% step %}

#### Gi oss beskjed når du er ferdig

Server Pro-kunder: Vennligst gi supportteamet beskjed når du har fullført gjenopprettingsprosessen.
{% endstep %}
{% endstepper %}


---

# 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/stotte/support-guides/doc-version-recovery.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.
