> 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/yllapito/data-and-backups.md).

# Tiedot ja varmuuskopiot

Joskus meidän on muutettava tietokannassa olevan datan skeemaa Overleafin kehittyessä; migraatioskriptejä käytetään tämän prosessin automatisointiin. Ne on ajettu [overleaf.com](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit) ensin, joka on maailman suurin Overleaf-instanssi, joten useimmat tilanteet on todennäköisesti jo kohdattu, emme kuitenkaan anna mitään takuita datastasi. Varmistathan, että luot **yhtenäinen** varmuuskopion datastasi **ennen** päivittäessäsi instanssiasi.

{% hint style="info" %}
Kun päivität uuteen Docker-kuvaan, kaikki migraatiot, joita ei ole **ei** vielä ajettu, suoritetaan automaattisesti; tämä voi kestää jonkin aikaa tietoaineistosi koosta riippuen, lokien seuraaminen kertoo sinulle etenemisestä. Lisätietoja on kohdassa [Lokitus](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/logging) dokumentaatiota.
{% endhint %}

### Datan tallennus

Overleaf Community Edition ja Server Pro tallentavat datansa kolmeen erilliseen paikkaan:

* **MongoDB-tietokanta:** Täällä sijaitsevat käyttäjä- ja projektitiedot.
* **Redis:** toimii tehokkaana välimuistina käsiteltävälle datalle ja tallentaa pääasiassa projektien muokkaukseen ja yhteistyöhön liittyviä tietoja.
* **Overleafin tiedostojärjestelmä:** tallentaa muokkaamattomia projektitiedostoja (mukaan lukien kuvat) ja toimii myös väliaikaisena levyvälivarastona projektien käännösten aikana.

{% hint style="info" %}
Tämä voi olla `~/sharelatex_data` tai `~/overleaf_data`, riippuen siitä, milloin instanssisi perustettiin.
{% endhint %}

{% hint style="success" %}
Projektitiedostoille ja koko projektihistorian datalle tuemme myös S3-yhteensopivia tallennusratkaisuja.
{% endhint %}

Katso kansiot yksityiskohtaisesti saadaksesi lisätietoja kansiorakenteesta levyllä.

### Yhtenäisen varmuuskopion tekeminen

Yhtenäistä varmuuskopiota tehtäessä on otettava mukaan kolme tallennuspaikkaa:

* MongoDB
* Redis
* Overleafin tiedostojärjestelmän data

Yhtenäisen varmuuskopion tuottamiseksi on **pakko** estää käyttäjiä tuottamasta uutta dataa varmuuskopioinnin aikana. Siksi suosittelemme ylläpitoikkunan ajoittamista niin, että käyttäjät eivät voi käyttää instanssia tai muokata projektejaan.

Ennen kuin aloitat varmuuskopioinnin, sinun on vietävä instanssi offline-tilaan. Server Prosta alkaen `3.5.0` sammutustoiminto automatisoi sivuston sulkemisen ja käyttäjien katkaisemisen.

Sammuttaaksesi instanssisi sinun on suoritettava `bin/docker-compose stop sharelatex` jos käytät Toolkit-asennusta tai `docker compose stop sharelatex` jos käytät Docker Composea.

Kun `sharelatex` kontti on pysäytetty, voit aloittaa varmuuskopioinnin.

Kun varmuuskopiointi on valmistunut **onnistuneesti** sinun on käynnistettävä `sharelatex` kontti. Tee tämä suorittamalla `bin/docker-compose start sharelatex` jos käytät Toolkit-asennusta tai `docker compose start sharelatex` jos käytät Docker Composea.

{% hint style="danger" %}

* Varmuuskopiot tulisi tallentaa erilliselle palvelimelle kuin se, jolla Overleaf-instanssi toimii, mieluiten kokonaan eri sijaintiin.
* Tietokantojen replikoiminen useisiin MongoDB-instansseihin voi tarjota jonkin verran redundanssia, mutta se ei suojaa korruptoitumiselta.
* Varmuuskopioiden testaaminen on paras tapa varmistaa, että ne ovat täydellisiä ja toimivia.
  {% endhint %}

### MongoDB

MongoDB:n mukana tulee komentorivityökalu nimeltä [mongodump](https://docs.mongodb.com/manual/reference/program/mongodump/) jota voidaan käyttää tietokantaan tallennettujen käyttäjä- ja projektitietojen varmuuskopion luomiseen.

### Overleafin tiedostojärjestelmän data

Toolkit-asennuksissa muokkaamattomien tiedostojen tallennuspolku määritetään `config/overleaf.rc` käyttämällä `OVERLEAF_DATA_PATH` ympäristömuuttujassa, mutta riippuen siitä, milloin instanssisi luotiin, tämä saattaa olla `data/sharelatex`.

Työkalulla kuten **rsync** on rekursiivinen tämän hakemiston kopiointi välttämätöntä täydellisen varmuuskopion luomiseksi.

### Redis

Redis tallentaa käyttäjäistunnot ja odottavat asiakirjapäivitykset ennen kuin ne kirjoitetaan MongoDB:hen.

Append Only File (AOF) -pysyvyys on suositeltu konfiguraatio Redisin pysyvyyttä varten.

Toolkit-käyttäjillä AOF-pysyvyys on oletuksena käytössä **uudet** asennuksissa; nykyiset käyttäjät löytävät lisätietoja AOF:n käyttöönotosta [täältä](/on-premises/fi/konfiguraatio/overleaf-toolkit/redis.md#enabling-append-only-file-persistence).

Jos päätät jatkaa RDB-tilannekuvien käyttöä AOF-pysyvyyden ohella, voit kopioida RDB-tiedoston turvalliseen sijaintiin varmuuskopiona.

### Datan siirtäminen palvelimien välillä

Parhaimmillaan uudessa instanssissa ei vielä ole mitään arvokasta dataa. Meillä ei ole prosessia instanssien datan yhdistämiseen.

Olettaen, että uudessa instanssissa ei vielä ole dataa, tässä on muutamia vaiheita, joita voit seurata. Yleisellä tasolla luomme tarballin `mongo`, `redis` ja `overleaf` volumeista, kopioimme sen uudelle palvelimelle ja puramme sen siellä uudelleen.

#### Toolkit

```bash
# Sammuta vanha instanssi hallitusti
old-server$ bin/stop

# Luo tarball
old-server$ tar --create --file backup-old-server.tar config/ data/

# Kopioi backup-old-server.tar-tiedosto vanhalta palvelimelta
# uudelle palvelimelle millä tahansa sopivalla tavalla

# Sammuta uusi instanssi hallitusti (jos se on jo käynnissä)
new-server$ bin/stop

# Siirrä uusi data, voit myös poistaa sen
new-server$ mkdir backup-new-server
new-server$ mv config/ data/ backup-new-server/

# Täytä config/data-hakemisto uudelleen
new-server$ tar --extract --file backup-old-server.tar

# Käynnistä kontit
new-server$ bin/up
```

#### Docker Compose

```bash
# Sammuta vanha instanssi hallitusti
old-server$ docker stop sharelatex
old-server$ docker stop mongo redis

# Luo tarball
old-server$ tar --create --file backup-old-server.tar ~/OVERLEAF_data ~/mongo_data ~/redis_data

# Kopioi backup-old-server.tar-tiedosto vanhalta palvelimelta
# uudelle palvelimelle millä tahansa sopivalla tavalla

# Sammuta uusi instanssi hallitusti (jos se on jo käynnissä)
new-server$ docker stop sharelatex
new-server$ docker stop mongo redis

# Siirrä uusi data, voit myös poistaa sen
new-server$ mkdir backup-new-server
new-server$ mv ~/OVERLEAF_data ~/mongo_data ~/redis_data backup-new-server/

# Täytä datakansiot uudelleen
new-server$ tar --extract --file backup-old-server.tar

# Käynnistä kontit
new-server$ docker start mongo redis
new-server$ docker start sharelatex
```

Riippuen **docker-compose.yml** tiedostostasi saatat joutua säätämään `mongo`, `redis`, `overleaf` volumeiden polkuja.

{% hint style="info" %}
Kun ajetaan root-käyttäjänä (tai sudolla), tar säilyttää tiedoston omistajan/ryhmän ja oikeudet, mikä on ratkaisevan tärkeää varmuuskopiota palautettaessa.
{% endhint %}

### Kansiot yksityiskohtaisesti

{% hint style="info" %}
Seuraavissa kansioissa on lisävihjeitä:

* (b) sisällytä varmuuskopioihin; paras, kun instanssi on pysäytetty yhdenmukaisuuden varmistamiseksi
* (d) voidaan poistaa
* (e) väliaikaiset tiedostot, voidaan poistaa kun instanssi on pysäytetty
  {% endhint %}

1. `~/mongo_data` (b)
   * MongoDB:n datakansio
2. `~/redis_data` (b)
   * Redisin tietokannan datakansio
3. `~/overleaf_data`
   1. bin
      1. synctex (d)
         * ei käytössä uusimmassa julkaisussa, aiemmin käytettiin mukautettua synctex-binaaria (synctexiä käytetään lähdekoodin yhdistämiseen .tex-tiedostojen ja PDF:n välillä)
   2. data
      1. välimuisti (e)
         * käännösten binaaritiedostojen välimuisti
      2. käännökset (e)
         * LaTeX-käännös tapahtuu täällä
      3. db.sqlite (d)
         * ei käytössä uusimmassa julkaisussa, aiemmin tallennettiin clsi-välimuistin tiedot (joko siirretty yksinkertaisiin muistissa oleviin kartoihin tai skannaamme levyn)
      4. db.sqlite-wal (d)
         * ei käytössä uusimmassa julkaisussa, katso db.sqlite
      5. tuloste (e)
         * LaTeX-käännöksen tulosteiden tallennus asiakkaalle tarjoamista varten
      6. template\_files (b)
         * mallipohjajärjestelmän kuviesikatselut (vain Server Pro)
      7. user\_files (b)
         * projektien binääritiedostot
      8. history (b)
         * täydet projektihistoriatiedostot
   3. tmp
      1. dumpFolder (e)
         * väliaikaiset tiedostot zip-tiedostojen käsittelystä
      2. uploads (e)
         * tiedostolatausten puskurointi (binaaritiedoston/uusi-projekti-zipistä -lataus)
      3. projectHistories (e)
         * väliaikaiset tiedostot täydellisten projektihistorioiden migraatioita varten


---

# 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/yllapito/data-and-backups.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.
