> 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/on-premises-cs/udrzba/data-and-backups.md).

# Data a zálohy

Někdy potřebujeme změnit schéma dat v databázi, jak se Overleaf vyvíjí; migrační skripty se používají k automatizaci tohoto procesu. Ty už budou spuštěny na [overleaf.com](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit) první, což je největší instance Overleafu na světě, takže většina situací už bude pravděpodobně ošetřena; nicméně za vaše data nedáváme žádné záruky. Ujistěte se prosím, že vytvoříte **konzistentní** zálohu svých dat **před** při upgradu vaší instance.

{% hint style="info" %}
Při upgradu na nový Docker obraz budou všechny migrace, které **ne** ještě nebyly spuštěny, automaticky provedeny; může to chvíli trvat v závislosti na velikosti vaší datové sady a sledování logů vám ukáže postup. Další informace naleznete v našem [Logování](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/logging) dokumentaci.
{% endhint %}

### Ukládání dat

Overleaf Community Edition a Server Pro ukládají svá data na třech samostatných místech:

* **Databáze MongoDB:** Zde se nacházejí uživatelská a projektová data.
* **Redis:** slouží jako vysoce výkonná mezipaměť pro průběžná data, především ukládá informace související s úpravami projektů a spoluprací.
* **Souborový systém Overleafu:** ukládá neupravitelné soubory projektu (včetně obrázků) a také slouží jako dočasná disková mezipaměť během kompilací projektu.

{% hint style="info" %}
Může to být `~/sharelatex_data` nebo `~/overleaf_data`, v závislosti na tom, kdy byla vaše instance nastavena.
{% endhint %}

{% hint style="success" %}
Pro soubory projektu a data úplné historie projektu podporujeme také úložiště kompatibilní se S3.
{% endhint %}

Další informace o rozložení složek na disku najdete v části Složky podrobně.

### Vytvoření konzistentní zálohy

Při vytváření konzistentní zálohy je třeba zahrnout tři úložiště:

* MongoDB
* Redis
* Data souborového systému Overleafu

Aby bylo možné vytvořit konzistentní zálohu, je **nezbytné** zabránit uživatelům ve vytváření nových dat, zatímco běží proces zálohování. Proto doporučujeme naplánovat údržbové okno, během něhož by uživatelé neměli mít přístup k instanci ani upravovat své projekty.

Než spustíte proces zálohování, budete muset svoji instanci odstavit. Od Server Pro `3.5.0` proces vypnutí automatizuje uzavření webu a odpojení uživatelů.

Chcete-li instanci vypnout, budete muset spustit `bin/docker-compose stop sharelatex` pokud používáte nasazení Toolkit, nebo `docker compose stop sharelatex` pokud používáte Docker Compose.

Jakmile `sharelatex` je kontejner zastaven, můžete spustit proces zálohování.

Jakmile bude proces zálohování dokončen **úspěšně** budete muset spustit `sharelatex` kontejner. Chcete-li to provést, spusťte `bin/docker-compose start sharelatex` pokud používáte nasazení Toolkit, nebo `docker compose start sharelatex` pokud používáte Docker Compose.

{% hint style="danger" %}

* Zálohy by měly být uloženy na samostatném serveru, než na kterém běží vaše instance Overleafu, ideálně úplně na jiném místě.
* Replikace databází do více instancí MongoDB může poskytnout určitou redundanci, ale nechrání před poškozením dat.
* Testování záloh je nejlepší způsob, jak zajistit, že jsou úplné a funkční.
  {% endhint %}

### MongoDB

MongoDB obsahuje nástroj příkazové řádky s názvem [mongodump](https://docs.mongodb.com/manual/reference/program/mongodump/) který lze použít k vytvoření zálohy uživatelských a projektových dat uložených v databázi.

### Data souborového systému Overleafu

U nasazení Toolkit je cesta, kde jsou uloženy vaše neupravitelné soubory, uvedena v `config/overleaf.rc` pomocí `v` proměnné prostředí, ale v závislosti na tom, kdy byla vaše instance vytvořena, to může být `data/sharelatex`.

Použití nástroje, jako je **rsync** pro rekurzivní zkopírování tohoto adresáře je nutné, aby byla vytvořena úplná záloha.

### Redis

Redis ukládá uživatelské relace a čekající aktualizace dokumentů, než jsou zapsány do MongoDB.

Pro perzistenci Redis se doporučuje konfigurace Append Only File (AOF).

Uživatelé Toolkit mají perzistenci AOF ve výchozím nastavení zapnutou pro **nové** instalace; stávající uživatelé najdou další informace o povolení AOF [zde](/on-premises/on-premises-cs/konfigurace/overleaf-toolkit/redis.md#enabling-append-only-file-persistence).

Pokud se rozhodnete pokračovat v používání snímků RDB spolu s perzistencí AOF, můžete soubor RDB zkopírovat na bezpečné místo jako zálohu.

### Migrace dat mezi servery

V nejlepším případě ve nové instanci ještě nemáte žádná cenná data. Nemáme proces pro slučování dat instancí.

Za předpokladu, že nová instance zatím neobsahuje žádná data, zde je několik kroků, kterými se můžete řídit. Ve stručnosti vytvoříme tarball z `mongo`, `redis` a `Overleaf` svazků, zkopírujeme ho na nový server a tam ho znovu rozbalíme.

#### Toolkit

```bash
# Korektně vypněte starou instanci
old-server$ bin/stop

# Vytvořte tarball
old-server$ tar --create --file backup-old-server.tar config/ data/

# Zkopírujte soubor backup-old-server.tar ze starého serveru na
# nový server libovolnou vhodnou metodou

# Korektně vypněte novou instanci (pokud už byla spuštěna)
new-server$ bin/stop

# Přesuňte nová data, můžete je také smazat
new-server$ mkdir backup-new-server
new-server$ mv config/ data/ backup-new-server/

# Znovu naplňte adresář config/data
new-server$ tar --extract --file backup-old-server.tar

# Spusťte kontejnery
new-server$ bin/up
```

#### Docker Compose

```bash
# Korektně vypněte starou instanci
old-server$ docker stop sharelatex
old-server$ docker stop mongo redis

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

# Zkopírujte soubor backup-old-server.tar ze starého serveru na
# nový server libovolnou vhodnou metodou

# Korektně vypněte novou instanci (pokud už byla spuštěna)
new-server$ docker stop sharelatex
new-server$ docker stop mongo redis

# Přesuňte nová data, můžete je také smazat
new-server$ mkdir backup-new-server
new-server$ mv ~/OVERLEAF_data ~/mongo_data ~/redis_data backup-new-server/

# Znovu naplňte datové adresáře
new-server$ tar --extract --file backup-old-server.tar

# Spusťte kontejnery
new-server$ docker start mongo redis
new-server$ docker start sharelatex
```

V závislosti na vašem **docker-compose.yml** souboru možná budete muset upravit cesty `mongo`, `redis`, `Overleaf` svazků.

{% hint style="info" %}
Při spuštění jako uživatel root (nebo se sudo) tar zachová vlastníka/skupinu souborů a oprávnění, což je při obnově zálohy zásadní.
{% endhint %}

### Složky podrobně

{% hint style="info" %}
Následující složky mají další poznámky:

* (b) zahrnout do záloh, nejlepší při zastavené instanci pro zajištění konzistence
* (d) lze smazat
* (e) efemérní soubory, lze je smazat, když je instance zastavena
  {% endhint %}

1. `~/mongo_data` (b)
   * datový adresář MongoDB
2. `~/redis_data` (b)
   * datový adresář databáze Redis
3. `~/overleaf_data`
   1. bin
      1. synctex (d)
         * v posledním vydání nepoužíváno, dříve byl používán vlastní binární soubor synctex (synctex se používá pro mapování zdrojů mezi soubory .tex a PDF)
   2. data
      1. cache (e)
         * mezipaměť binárních souborů pro kompilace
      2. kompilace (e)
         * zde probíhá kompilace LaTeXu
      3. db.sqlite (d)
         * v posledním vydání nepoužíváno, dříve ukládalo podrobnosti mezipaměti clsi (buď přesunuto do jednoduchých map v paměti, nebo prohledáváme disk)
      4. db.sqlite-wal (d)
         * v posledním vydání nepoužíváno, viz db.sqlite
      5. output (e)
         * úložiště výstupu kompilace LaTeXu pro doručení klientovi
      6. template\_files (b)
         * náhledy obrázků šablonového systému (pouze Server Pro)
      7. user\_files (b)
         * binární soubory projektů
      8. history (b)
         * soubory úplné historie projektu
   3. tmp
      1. dumpFolder (e)
         * dočasné soubory vznikající při zpracování ZIP souborů
      2. nahrávání (e)
         * vyrovnávací paměť nahrávaných souborů (nahrání binárního souboru / nového projektu ze ZIPu)
      3. projectHistories (e)
         * dočasné soubory pro migrace úplné historie projektu


---

# 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/on-premises-cs/udrzba/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.
