4.9. Zálohování a obnova

4.9.1. Co zálohovat

Elza uchovává data na dvou místech, která tvoří jeden celek:

  • databáze,

  • adresář dms pracovního adresáře (<workingDir>/dms) s přílohami, vygenerovanými výstupy, publikacemi a soubory importních dávek. Databáze odkazuje na každý soubor jeho cestou v tomto adresáři.

Obojí je nutné zálohovat a obnovovat společně, ze stejného okamžiku. Databáze obnovená bez odpovídajícího adresáře dms odkazuje na chybějící soubory; soubory bez záznamu v databázi se považují za osiřelé.

Zbytek pracovního adresáře zálohovat není nutné: balíčky jsou součástí distribuce a ostatní data aplikace znovu vytvoří. Konfiguraci (config/elza.yaml) zálohujte spolu s ostatní konfigurací serveru.

Zálohovat lze i celý virtuální počítač, pokud je snímek databáze a souborového systému konzistentní.

4.9.2. Databáze

Tabulky ap_cached_access_point a arr_cached_node jsou cache automaticky obnovované při startu; jejich obsah lze ze zálohy vynechat (jejich definici nikoli). Příklad:

pg_dump -Fc --exclude-table-data=ap_cached_access_point \
            --exclude-table-data=arr_cached_node \
            -U elza -f elza.dump elza

Velikost zálohy středně velké instalace je v řádu jednotek gigabajtů. Při použití instalačních skriptů zálohuje databázi pravidelně příkaz elza-backup s příslušným časovačem (viz https://get.lightcomp.com/elza/).

4.9.3. Adresář dms

Adresář zálohujte po databázi, nebo obojí při zastavené aplikaci. Soubor vzniklý mezi oběma zálohami je pak jen osiřelým souborem, což nevadí. Například:

rsync -a --delete /opt/elza/work/dms/ /backup/elza/dms/

Mazané soubory se nejprve přesouvají do dms/_trash/<datum>/ a odstraní se po elza.dms.trashRetentionDays (výchozí 30 dní); koš zálohovat není nutné.

4.9.4. Frekvence a doba uchování

Frekvence závisí na organizaci a na objemu práce v aplikaci. Typické nastavení:

Položka

Frekvence

Úplná záloha databáze

denně nebo týdně, například ve 2:00

Adresář dms

po záloze databáze

Před každou aktualizací

vždy, obojí

Uchovávejte alespoň posledních osm týdenních záloh a vybrané zálohy po delší dobu, například roční zálohy po dobu deseti let. Elza uchovává archivní popis dlouhodobě, proto musí být možné napravit i chybu zjištěnou se zpožděním.

4.9.5. Obnova

  1. Zastavte aplikaci.

  2. Vytvořte prázdnou databázi se stejným vlastníkem a locale podle Příprava databáze, ale bez vytvoření rozšíření PostGIS; záloha je obsahuje. Obnovu proveďte jako superuživatel, protože vytvoření rozšíření to vyžaduje:

    pg_restore -U postgres -d elza elza.dump
    
  3. Obnovte adresář dms ze stejného okamžiku.

  4. Spusťte verzi Elzy, se kterou byla záloha pořízena. Novější verze data při startu migruje; starší verze je přečíst nedokáže.

  5. Počkejte na spuštění aplikace; cache se obnoví při startu.