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

# (v5.0.1-migraatio) Doc-version palautus

{% hint style="info" %}
Jos et ole koskaan ajanut Server Pro -versiota 5.0.1 tai Community Edition -versiota 5.0.1, tai jos käynnistit täysin uuden instanssin versiolla 5.0.1, sinun ei tarvitse suorittaa tätä palautusprosessia.
{% endhint %}

**Päivitykset tälle sivulle:**

* (2024-04-22 13:40 BST): Lisätty vaihe "Estä uusien päivitysten pääsy järjestelmään ja tyhjennä kaikki muutokset MongoDB:hen".
* (2024-04-23 11:45 BST): Huomioi 5.0.1:n rikkoutuneet tyhjennykset ja ohita tyhjennykset, kun 5.0.2 oli käynnistetty.

Palautuksen kesto riippuu instanssisi projektien määrästä ja koosta sekä history store -palvelun käyttämästä tallennusbackendistä palasia varten (kuten määritellään kohdassa `OVERLEAF_HISTORY_CHUNKS_BUCKET`).

Palautusprosessi viivästyttää sovelluksen käynnistymistä Server Pro -kontin sisällä. Sivusto näyttää tuolloin olevan offline-tilassa. Tuemme palautuksen suorittamista vain yhdestä Server Pro -kontin instanssista; kaikkien muiden vaakasuuntaisen skaalauksen työntekijöiden on oltava offline-tilassa.

Voit tarvittaessa pysäyttää ja jatkaa palautusprosessia.

Perustuen suorituskykytestiemme tuloksiin palautusprosessi voi käsitellä noin 10 000 pientä projektia minuutissa nykyaikaisella laitteistolla (3 GHz CPU-kellotaajuus ja paikallinen NVMe-tallennus). Esimerkiksi 100 000 projektin instanssille varaa huoltoikkuna, joka sallii vähintään 10+2 minuuttia käyttökatkoa. Käytä seuraavaa kyselyä arvioidaksesi instanssisi projektien määrää:

{% code overflow="wrap" %}

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

{% endcode %}

Lue seuraavat palautusvaiheet kokonaan ennen kuin aloitat. Server Pro -asiakkaat ovat enemmän kuin tervetulleita ottamaan yhteyttä <support@overleaf.com> jos heillä on kysyttävää.

### Palautusprosessi

{% stepper %}
{% step %}

#### Nouda julkaisukuvat

Nouda `5.0.3` julkaisukuvat.
{% endstep %}

{% step %}

#### Tunnista muutama projekti

Tunnista muutama projektitunnuksen perusteella yksilöity projekti, jolta puuttuu historia; mieluiten sinulla on lupa tehdä muutoksia yhteen niistä.
{% endstep %}

{% step %}

#### Ajoita huolto

Ajoita käyttökatkoa varten huoltoikkuna.
{% endstep %}

{% step %}

#### Pysäytä kaikki paitsi yksi worker

Pysäytä kaikki paitsi yksi worker, kun käytät vaakasuuntaista skaalautumisasetusta.
{% endstep %}

{% step %}

#### Pysäytä uudet päivitykset ja tyhjennä kaikki muutokset MongoDB:hen

Pysäytä uusien päivitysten pääsy järjestelmään ja tyhjennä kaikki muutokset MongoDB:hen:

1. Sulje editori ja katkaise kaikkien käyttäjien yhteys manuaalisesti hallintapaneelin kautta osoitteessa `https://my-server-pro.example.com/admin#open-close-editor` välilehdessä "Avaa/Sulje editori".
2. Pysäytä WebSocket-/reaaliaikapalvelu.

   ```bash
   $ docker exec sharelatex sv stop real-time-overleaf
   ```
3. Odota, että reaaliaikapalvelu poistuu käytöstä, kuten osoittaa `alas:`.

   ```bash
   $ docker exec sharelatex sv status real-time-overleaf
   run: real-time-sharelatex: (pid 394) 50s, want down, got TERM
   # odota vielä hetki...

   $ docker exec sharelatex sv status real-time-overleaf
   down: real-time-sharelatex: 7s, normally up
   ```
4. Pysäytä git-bridge-kontti, jos se on käytössä.

   ```bash
   $ docker stop git-bridge
   ```
5. Jos et koskaan ajanut versiota 5.0.2: tee manuaalinen tyhjennys dokumenttipäivityksille ja odota, että se päättyy onnistuneesti.

   Voit toistaa komennon virheen sattuessa. Jos näet ei-nolla-arvoisen `failureCount` peräkkäisissä ajoissa, pysäytä siirto (palauta palvelut komennolla `docker restart git-bridge sharelatex`) ja ota yhteyttä tukeen.

   <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":"kaikkien projektien tyhjennys valmis","time":"...","v":0}
   Kaikkien projektien tyhjennys valmis
   </code></pre>
6. Jos et koskaan ajanut versiota 5.0.2: varmista, että kaikki muutokset on tyhjennetty Redisistä.

   Jos saat tulostetta komennosta `redis-cli`, pysäytä siirto (palauta palvelut komennolla `docker restart git-bridge sharelatex`) ja ota yhteyttä tukeen.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec redis redis-cli --scan --pattern 'DocVersion:*'
   # redis-cli:stä ei tule tulostetta, mikä osoittaa onnistumisen; tarkista seuraavaksi redis-cli:n poistumiskoodi, sen pitäisi olla nolla
   $ echo $?
   0
   </code></pre>
7. Kokeile tyhjentää kaikki odottavat historiaan liittyvät muutokset.

   Tämän on oltava parhaamme mukaan tehty tyhjennys, koska joillakin projekteilla on rikkinäisiä historioita huonon tietokantamigraation vuoksi. Kaikki epäonnistumiset korjataan synkronoimalla historia uudelleen palautusprosessin lopussa.

   <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 %}

#### Varmista varmuuskopio

Harkitse [eheän varmuuskopion](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) instanssin.
{% endstep %}

{% step %}

#### Päivitä

Päivitä versioon `5.0.3`.
{% endstep %}

{% step %}

#### Automaattinen palautus

Palautusprosessi suoritetaan automaattisesti kontin käynnistyessä.
{% endstep %}

{% step %}

#### Seuraa edistymistä

Voit seurata skriptin edistymistä seuraamalla lokitiedostoa `/var/lib/overleaf/data/history/doc-version-recovery.log`. Se tulostaa alussa projektien kokonaismäärän ja yhteenvedon jokaisen 1000 käsitellyn projektin jälkeen.

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Odota, että palautusprosessi päättyy

Odota, että palautusprosessi päättyy joko seuraamalla yllä olevaa lokitiedostoa, kunnes `Valmis.` rivi on tulostettu, tai odottamalla `Dokumenttiversioiden palautus valmis.` tulostumista Server Pro -kontin vakiotulosteeseen.
{% endstep %}

{% step %}

#### Vahvista palautusprosessi

Vahvista palautusprosessi avaamalla historianäkymä muutamalle projektille, joilta aiemmin puuttui historia.

1. Nopeuta testattavien projektien uudelleensynkronointia (ne käsitellään kyllä aikanaan, mutta emme halua odottaa niiden vuoroa.)

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

   (Toista jokaisella testattavalla projektitunnuksella, korvaa `000000000000000000000000` kerrallaan yhdellä projektitunnuksella.)
2. Avaa projektieditori projekteille `https://my-server-pro.example.com/project/000000000000000000000000`
3. Avaa projektin "Historia"-paneeli ja katso viimeisin sisältö.
4. Valinnainen: Sulje "Historia"-paneeli uudelleen. Tee koodimuutos, kuten lisää kommentti otsikkoon.
5. Valinnainen: Käynnistä uudelleenkäännös laukaistaksesi paikallisen muutoksen tyhjennyksen. Avaa "Historia"-paneeli uudelleen ja katso muutos. Kun olet valmis, kumoa muutos.
   {% endstep %}

{% step %}

#### Vaakasuuntaista skaalausta varten...

Käynnistä muut työntekijät uudelleen.
{% endstep %}

{% step %}

#### Pidä instanssi käynnissä

Pidä käynnissä se instanssi, joka suoritti palautusprosessin. Se synkronoi kaikkien projektien historian uudelleen taustalla rinnakkaisuudella 1. Tämä aiheuttaa hieman suuremman peruskuorman. (Voit käynnistää instanssin uudelleen, mutta silloin sen on aloitettava uudelleensynkronoinnit alusta.)
{% endstep %}

{% step %}

#### Ilmoita meille, kun olet valmis

Server Pro -asiakkaat: ilmoittakaa tukitiimille, kun olette suorittaneet palautusprosessin.
{% 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://overleaf-pro.ayaka.space/on-premises/fi/tuki/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.
