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

# (v5.0.1-migraatio) Dokumenttiversioiden palautus

<Info>
  Jos et ole koskaan ajanut Server Pron versiota 5.0.1 tai Community Editionin versiota 5.0.1, tai jos aloitit kokonaan uudella instanssilla versiosta 5.0.1, sinun ei tarvitse suorittaa tätä palautusprosessia.
</Info>

<strong>Tämän sivun päivitykset:</strong>

* (2024-04-22 13:40 BST): Lisätty vaihe "Estä uusien päivitysten pääsy järjestelmään ja tallenna kaikki muutokset MongoDB:hen".
* (2024-04-23 11:45 BST): Huomioitu versiossa 5.0.1 epäonnistuneet tallennukset ja ohitettu tallennukset, kun versio 5.0.2 oli käynnistetty.

Palautuksen kesto riippuu instanssisi projektien määrästä ja koosta sekä historiavaraston chunk-tallennukseen käyttämästä tallennustaustasta (määritetty `OVERLEAF_HISTORY_CHUNKS_BUCKET`-muuttujalla).

Palautusprosessi viivästyttää sovelluksen käynnistymistä Server Pro -kontissa. Sivusto näyttää olevan tänä aikana poissa käytöstä. Tuemme palautuksen ajamista vain yhdestä Server Pro -kontin instanssista; kaikkien muiden vaakaskaalauksen työprosessien on oltava pois päältä.

Voit tarvittaessa pysäyttää palautusprosessin ja jatkaa sitä myöhemmin.

Suorituskykytestiemme perusteella palautusprosessi pystyy käsittelemään nykyaikaisella laitteistolla (3 GHz:n suoritin ja paikallinen NVMe-tallennustila) noin 10 000 pientä projektia minuutissa. Esimerkiksi instanssille, jossa on 100 000 projektia, varaa huoltoikkuna, joka sallii vähintään 10+2 minuutin käyttökatkon. Arvioi instanssisi projektien määrä seuraavalla kyselyllä:

```bash wrap theme={null}
$ docker exec mongo mongosh sharelatex --quiet --eval 'db.projects.estimatedDocumentCount() + db.deletedProjects.estimatedDocumentCount()'
```

Lue seuraavat palautusvaiheet kokonaan ennen aloittamista. Server Pron asiakkaat voivat mielellään ottaa yhteyttä osoitteeseen [support@overleaf.com](mailto:support@overleaf.com), jos heillä on kysyttävää.

### Palautusprosessi

<Steps>
  <Step title="Hae julkaisuimaget">
    Hae `5.0.3`-julkaisun imaget.
  </Step>

  <Step title="Tunnista muutama projekti">
    Tunnista tunnisteen perusteella muutama projekti, joista puuttuu historia; mieluiten sellainen, johon sinulla on oikeus tehdä muutoksia.
  </Step>

  <Step title="Ajoita huolto">
    Ajoita huoltoikkuna käyttökatkoa varten.
  </Step>

  <Step title="Pysäytä kaikki työprosessit yhtä lukuun ottamatta">
    Pysäytä vaakaskaalausta käytettäessä kaikki työprosessit yhtä lukuun ottamatta.
  </Step>

  <Step title="Estä uudet päivitykset ja tallenna kaikki muutokset MongoDB:hen">
    Estä uusien päivitysten pääsy järjestelmään ja tallenna kaikki muutokset MongoDB:hen:

    1. Sulje editori ja katkaise kaikkien käyttäjien yhteydet manuaalisesti ylläpitopaneelin "Open/Close Editor" -välilehdellä osoitteessa `https://my-server-pro.example.com/admin#open-close-editor`.
    2. Pysäytä Websocket/real-time-palvelu.

       ```bash theme={null}
       $ docker exec sharelatex sv stop real-time-overleaf
       ```
    3. Odota, että real-time-palvelu sammuu, minkä osoittaa `down:`.

       ```bash theme={null}
       $ docker exec sharelatex sv status real-time-overleaf
       run: real-time-sharelatex: (pid 394) 50s, want down, got TERM
       # wait a little longer...

       $ 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 theme={null}
       $ docker stop git-bridge
       ```
    5. Jos et koskaan ajanut versiota 5.0.2: Käynnistä dokumenttipäivitysten manuaalinen tallennus ja odota, että se valmistuu onnistuneesti.

       Voit toistaa komennon virheen sattuessa. Jos näet peräkkäisillä ajokerroilla nollasta poikkeavan `failureCount`-arvon, keskeytä migraatio (palauta palvelut komennolla `docker restart git-bridge sharelatex`) ja ota yhteyttä tukeen.

       ```bash wrap theme={null}
       $ docker exec sharelatex bash -c 'source /etc/container_environment.sh && source /etc/overleaf/env.sh && cd services/document-updater && 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}
           Done flushing all projects
           
       ```
    6. Jos et koskaan ajanut versiota 5.0.2: Varmista, että kaikki muutokset on tallennettu pois redisistä.

       Jos `redis-cli` tulostaa mitään, keskeytä migraatio (palauta palvelut komennolla `docker restart git-bridge sharelatex`) ja ota yhteyttä tukeen.

       ```bash wrap theme={null}
       $ docker exec redis redis-cli --scan --pattern 'DocVersion:*'
           # no output from redis-cli indicates success, check exit code of redis-cli next, it should be zero
           $ echo $?
           0
           
       ```
    7. Yritä tallentaa kaikki odottavat historiamuutokset.

       Tallennus tehdään parhaan yrityksen periaatteella, sillä joidenkin projektien historia on rikki virheellisen tietokantamigraation vuoksi. Mahdolliset virheet korjataan synkronoimalla historia uudelleen palautusprosessin lopussa.

       ```bash wrap theme={null}
       $ docker exec sharelatex bash -c 'source /etc/container_environment.sh && source /
           
       ```
  </Step>

  <Step title="Ota varmuuskopio">
    Harkitse instanssin [johdonmukaisen varmuuskopion](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) ottamista.
  </Step>

  <Step title="Päivitä">
    Päivitä versioon `5.0.3`.
  </Step>

  <Step title="Automaattinen palautus">
    Palautusprosessi käynnistyy automaattisesti kontin käynnistyessä.
  </Step>

  <Step title="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.

    ```bash wrap theme={null}
    $ docker exec sharelatex tail --retry --follow /var/lib/overleaf/data/history/doc-vers
    ```
  </Step>

  <Step title="Odota palautusprosessin valmistumista">
    Odota palautusprosessin valmistumista joko seuraamalla yllä mainittua lokitiedostoa, kunnes siihen on tulostunut rivi `Done.`, tai odottamalla, että Server Pro -kontin vakiotulosteeseen tulostuu `Finished recovery of doc versions.`.
  </Step>

  <Step title="Vahvista palautusprosessi">
    Vahvista palautusprosessi avaamalla historiapaneeli muutamalle projektille, joilta historia aiemmin puuttui.

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

       ```bash wrap theme={null}
       $ docker exec sharelatex curl -X POST --silent "http://127.0.0.1:3054/project/000000000000000000000000/resync?force=true"
           
       ```

       (Toista jokaiselle testattavalle projektitunnisteelle ja korvaa `000000000000000000000000` yksi projektitunniste kerrallaan.)
    2. Avaa projektien editori osoitteessa `https://my-server-pro.example.com/project/000000000000000000000000`
    3. Avaa projektin "History"-paneeli ja tarkista viimeisin sisältö.
    4. Valinnainen: Sulje "History"-paneeli uudelleen. Tee koodimuutos, esimerkiksi lisää kommentti otsakkeeseen.
    5. Valinnainen: Käännä projekti uudelleen käynnistääksesi paikallisen muutoksen tallennuksen. Avaa "History"-paneeli uudelleen ja tarkista muutos. Kun olet valmis, kumoa muutos.
  </Step>

  <Step title="Vaakaskaalausta varten...">
    Käynnistä muut työprosessit uudelleen.
  </Step>

  <Step title="Pidä instanssi käynnissä">
    Pidä palautusprosessin suorittanut instanssi käynnissä. Se synkronoi kaikkien projektien historian uudelleen taustalla yhden samanaikaisen prosessin voimin. Tämä nostaa peruskuormaa hieman. (Voit käynnistää instanssin uudelleen, mutta uudelleensynkronoinnit on silloin aloitettava alusta.)
  </Step>

  <Step title="Kerro meille, kun olet valmis">
    Server Pron asiakkaat: Ilmoita tukitiimille, kun olet suorittanut palautusprosessin loppuun.
  </Step>
</Steps>


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