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

# (v5.0.1-migraatio) Dokumenttiversion 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): Otettu huomioon 5.0.1:n rikkoutuneet tyhjennykset ja ohitettu tyhjennykset, kun 5.0.2 oli käynnistetty.

Palautuksen kesto riippuu instanssissasi olevien projektien määrästä ja koosta sekä history store -tallennuksen käyttämästä tallennusbackendistä palasia varten (kuten määritelty `OVERLEAF_HISTORY_CHUNKS_BUCKET`).

Palautusprosessi viivästyttää sovelluksen käynnistymistä Server Pro -säilössä. Sivusto näyttää olevan offline-tilassa tuona aikana. Tuemme palautuksen suorittamista vain yhdestä Server Pro -säilön instanssista; kaikkien muiden vaakasuoran skaalauksen työntekijöiden on oltava offline-tilassa.

Voit tarvittaessa pysäyttää ja jatkaa palautusprosessia.

Suorituskykytestiemme perusteella 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 kannattaa ajoittaa huoltokatko, joka sallii vähintään 10+2 min käyttökatkoa. Arvioi projektien määrä instanssissasi seuraavalla kyselyllä:

{% code overflow="wrap" %}

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

{% endcode %}

Lue seuraavat palautusvaiheet kokonaan ennen aloittamista. Server Pro -asiakkaat voivat hyvin ottaa yhteyttä <support@overleaf.com> kaikissa kysymyksissä.

### Palautusprosessi

{% stepper %}
{% step %}

#### Nouda release-kuvat

Nouda `5.0.3` release-kuvat.
{% endstep %}

{% step %}

#### Tunnista muutama projekti

Tunnista muutama projektitunnisteella varustettu projekti, josta historia puuttuu; mieluiten sinulla on oikeus tehdä muutos yhteen niistä.
{% endstep %}

{% step %}

#### Ajoita huoltokatko

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

{% step %}

#### Pysäytä kaikki paitsi yksi työntekijä

Pysäytä kaikki paitsi yksi työntekijä, kun käytät vaakasuoraa skaalautuvaa asetusta.
{% 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 osoitteessa `https://my-server-pro.example.com/admin#open-close-editor` "Open/Close Editor" -välilehdellä.
2. Pysäytä WebSocket-/reaaliaikainen palvelu.

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

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

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

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

   Voit toistaa komennon virheen sattuessa. Jos näet toistuvissa ajoissa ei-nollan `failureCount` arvon, lopeta migraatio (palauta palvelut käyttäen `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":"finished flushing all projects","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 mitä tahansa tulostetta komennolta `redis-cli`, lopeta migraatio (palauta palvelut käyttäen `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:*'
   # tulosteen puuttuminen redis-cli:ltä tarkoittaa onnistumista, tarkista seuraavaksi redis-cli:n poistumiskoodi; sen pitäisi olla nolla
   $ echo $?
   0
   </code></pre>
7. Yritä tyhjentää kaikki odottavat historiamuutokset.

   Tämän on oltava parhaaseen yritykseen perustuva tyhjennys, sillä joillakin projekteilla historia on rikkoutunut virheellisen tietokantamigraation vuoksi. Kaikki epäonnistumiset korjataan historian uudelleensynkronoinnilla 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 %}

#### Ota varmuuskopio

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

{% step %}

#### Päivitä

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

{% step %}

#### Automaattinen palautus

Palautusprosessi suoritetaan automaattisesti säilön 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 joka 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 valmistuu

Odota, että palautusprosessi valmistuu joko seuraamalla yllä olevaa lokitiedostoa, kunnes `Valmis.` rivi on tulostettu tai odottamalla `Dokumenttiversioiden palautus valmis.` tulostuvan Server Pro -säilön vakiotulosteeseen.
{% endstep %}

{% step %}

#### Varmenna palautusprosessi

Varmenna palautusprosessi avaamalla historianäkymä muutamalle projektista, joilta historia puuttui aiemmin.

1. Nopeuta testattavien projektien uudelleensynkronointia (ne käsitellään lopulta, 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 project-id:llä, korvaa `000000000000000000000000` yhdellä project-id:llä kerrallaan.)
2. Avaa projektieditori projekteille `https://my-server-pro.example.com/project/000000000000000000000000`
3. Avaa projektin "Historia"-paneeli ja tarkastele uusinta sisältöä.
4. Valinnainen: Sulje "Historia"-paneeli uudelleen. Tee koodimuutos, kuten lisää kommentti otsikkoon.
5. Valinnainen: Suorita uudelleen käännös, jotta paikallinen muutos tyhjennetään. Avaa "Historia"-paneeli uudelleen ja näe muutos. Kun olet valmis, peruuta muutos.
   {% endstep %}

{% step %}

#### Vaakasuoraa skaalautumista varten...

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

{% step %}

#### Pidä instanssi käynnissä

Pidä palautusprosessin suorittanut instanssi käynnissä. Se synkronoi kaikkien projektien historian uudelleen taustalla rinnakkaisuudella 1. Tämä aiheuttaa hieman suuremman peruskuormituksen. (Voit käynnistää instanssin uudelleen, mutta silloin sen on aloitettava uudelleen 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://ayakaleaf-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.
