Zálohování databáze
Informace obsažené ve firemní databázi jsou pro chod každé organizace životně důležité.
Při sebevětší péči o technický stav databázového serveru
může dojít k havárii tohoto počítače, k destrukci dat na jeho pevných discích.
I při bezchybném provozu databázového serveru může nastat havarijní situace např. díky omylu
administrátora při manipulaci s databází, při hrubém omylu uživatelů (mazání dat, která smazána
být neměla), apod.
To vše a ještě řada dalších potenciálních problémů je důvodem pro velmi pečlivé
zálohování databázového souboru, které je nezbytným prvkem při provozu informačního systému.
Pro zálohování by mělo platit
- Zálohování je prováděno dostatečně často - obvykle jedenkrát za den.
- Zálohování probíhá v době nejmenšího provozu - obvykle v hlubokých nočních hodinách.
- Záloha se vytváří (nebo dodatečně přesouvá) na jiném počítači (externím disku), než na
kterém je provozován databázový server.
- Zálohy databáze jsou uchovávány po určitou dobu, doporučujeme následující scénář.
- V rámci posledního týdne jsou uchovávány zálohy každého dne.
- V rámci posledního měsíce je uchovávána jedna záloha z každého týdne.
- V rámci posledního roku je uchovávána jedna záloha z každého měsíce.
- Z každého roku by alespoň jedna záloha měla být uchována natrvalo.
Co zálohovat
Nejobvyklejším způsobem zálohování je zkopírování a komprese celého databázového souboru.
Databázový soubor se jmenuje WB8.FIL a leží ve složce, která byla určena při instalaci databáze,
obvykle je to složka C:\Program Files\Software602\602SQL81.
Jak zálohovat
Je na správci databáze, aby zvolil některý z možných režimů zálohování.
- Zálohování v režii Kaskády
Ačkoliv mluvíme o zálohování prostřednictvím Kaskády, jde ve skutečnosti o nadstavbu
využívající zálohovací mechanismus 602SQL serveru.
Tento mechanismus zálohování doporučujeme používat, jeho aktivaci provede administrátor Kaskády velmi
jednoduše přímo v Kaskádě v menu v boxu Zálohování.
- Zálohování v režii 602SQL serveru
Pokud nechcete využít mechanismu zálohování v režii Kaskády (popsaný výše), lze prostřednictvím
Řídící konzole 602SQL využít mechanismus k zálohování
databáze, který poskytuje 602SQL server nezávisle na aplikacích, které nad ním běží.
Tento mechanismus lze využít zcela nezávisle na Kaskádě, bylo by však zbytečné
používat oba dva mechanismy souběžně.
Podrobněji se o mechanismech zálohování 602SQL dočtete v helpu k 602SQL serveru v
kapitole Jak lze
provádět kompletní zálohování databáze?. Pokud využijete tento mechanismus a nebude zapnuto
zálohování prostřednictvím mechanismů Kaskády, bude alespoň Kaskáda při
nočním úklidu monitorovat kdy byla poslední záloha provedena a
případně upozorní administrátora na příliš starou zálohu.
- Zálohování exportem datové větve
Zmiňujeme tento způsob zálohování pouze pro úplnost, neboť
export datové větve lze také chápat
jako možnou alternativu zálohy. V praxi však není tento způsob příliš praktický, neboť jej
nelze nijak automatizovat, export je poměrně pomalý a výsledkem je několik tisíc diskových
souborů představujících jednotlivé objekty databáze.
Zálohování v režii Kaskády
Ačkoliv mluvíme o zálohování prostřednictvím Kaskády, jde ve skutečnosti o nadstavbu, využívající
zálohovací mechanismus 602SQL serveru.
V rámci Kaskády je naprogramován mechanismus, který:
- Umožňuje administrátorovi Kaskády nastavit přímo v Kaskádě v menu
v boxu Zálohování parametry zálohování.
- Zajistí aplikaci scénáře, který pro uchovávání záloh doporučujeme, tzn. z posledního
týdne každý den, z posledního měsíce jedna záloha týdně, z posledního roku jedna záloha měsíčně.
- Zálohování provádí jako součást tzv. nočního úklidu databáze,
v závěru tohoto procesu.
- Nutné předpoklady pro tento způsob zálohování
Musí existovat diskový prostor, který
- je "viditelný" z databázového serveru
( stačí "síťová cesta" typu \\192.168.1.123\zalohy\sql_firma )
- disponuje volným prostorem alespoň N x větším, než je jedna záloha databáze, záleží na úrovni, viz. dále.
- Konfigurace tohoto způsobu zálohování
Vrcholový administrátor Kaskády může aktivovat tento způsob zálohování přímo v Kaskádě,
prostřednictvím menu
v boxu Zálohování parametry zálohování. Musí přitom:
- Zaškrtnout volbu Zálohovat databázi při nočním úklidu této dat.větve
( technicky: @KASKADA / OdaBackupAppl = Schema_name )
- Do pole Kořen složek zadat cestu k diskovému prostoru, dostupnému z databázoveho serveru,
ve kterém sa automaticky budou dle potřeby vytvářet složky pro jednotlivé zálohy, a kde musí být
dostatečná volná kapacita ( technicky: @KASKADA / OdaBackupDirectory )
- Určit úroveň zálohování ( technicky: @KASKADA / OdaBackupLevel )
- denní (0)
volný prostor musí být alespoň 7x větší, než je jedna záloha, nebudou se tvořit týdenní a měsíční zálohy
- denní + týdenní (1)
volný prostor musí být alespoň (6+5)=11x větší, než je jedna záloha, bude se tvořit 6 denních
a 5 týdenních záloh, nebudou se tvořit měsíční zálohy
- denní + týdenní +měsíční (2)
volný prostor musí být alespoň (6+4+12)=22x větší, než je jedna záloha, bude se tvořit 6 denních,
4 týdenní, 12 měsíčních záloh
- Realizace zálohy (technická kapitola)
- Zálohování se provede v závěru tzv. nočního úklidu té
datové větve, v níž administrátor
zaškrtnul volbu "Zálohovat databázi při nočním úklidu této dat.větve" (technicky to znamená, že
ODA_Backup spustí zálohování, pokud @KASKADA / OdaBackupAppl = Schema_name).
- Ověří se, že je definovaná cesta pro cíl zálohování a pokud není, vytvoří se alarm uživateli,
určenému v globální konfiguraci jako příjemce informací o
chybách automatiky a skončí se činnost.
- Podle aktuálního datumu se sestaví
- Jméno cílového adresáře, přitom se zohledňuje, zda "úroveň zálohování" je nastavena pouze
denní zálohy, nebo i týdenní a měsíční:
- První den v měsíci se provede "měsíční záloha" do adresáře BackupDirectory\MesicNN
- V neděli se provede "týdenní záloha" do adresáře BackupDirectory\TydenNN a to tak, že
NN := Integer (Den / 7 ) + 1
- Ostatní dny se provede záloha do adresáře BackupDirectory\DenN, kde N je pořadové číslo dne, přitom
Hodnota 0 odpovídá neděli, hodnota 1 pondělí až hodnota 6 odpovídá sobotě.
- Jméno cílového souboru, obsahuje m.j. datum a čas startu zálohování
- Spustí se SQL funkce Backup_Database_File s patřičnými parametry, přitom
- klientům (uživatelům kteří mají v tom okamžiku spuštěnou Kaskádu) se v tom okamžiku
zobrazí hlášení o zahájení zálohování (to bylo odesláno systémovým triggerem _sysext._on_system_event),
- další činnost klientů je až do ukončení zálohování pozastavena (to řeší vlastními prostředky Kaskada.exe)
- Při ukončení zálohování probíhá tzv. systémový trigger _sysext._on_backup, který
- v případě, že záloha byla korektně vytvořena, zapíše pouze do proměnné @KASKADA / BackUpFile
jméno cílového souboru
- v případě, že záloha NEbyla korektně vytvořena, provede záznam pro odeslání varovného
e-mailu na technickou podporu Kaskády
- Nakonec (v rámci procedury ODA_Backup) je vytvořen alarm adresovaný uživateli, určenému v
globální konfiguraci jako příjemce informací o chybách automatiky, zde je odpovídající informace
o pozitivním nebo negativním výsledku zálohování.
Obnova databáze ze zálohy
Tento odstavec se týká záloh celé databáze, ať už vznikly zálohováním v režii Kaskády nebo zálohováním
602SQL serveru.
Je dobře, když tuto činnost nemusí správce databáze nikdy provést. Pokud přesto dojde k havarijní
situaci, je potřeba postupovat následovně.
- Ukončete veškerý provoz - ujistěte se, že k databázovému serveru nejsou přihlášeni žádní
uživatelé (je nutné, aby uživatelé ukončili i chod správce avíz Kaskády - KaskNotify.exe).
- Ukončete chod přijímače a odesílače zásilek.
- Ukončete chod 602SQL serveru.
- Na počítači, kde 602SQL server běží spusťte Řídící konzoli 602SQL.
- V řídící konzoli klikněte na jméno příslušné databáze, ale nepřipojujte se k ní.
- V kartě databáze klikněte na volbu .
- Pomocí dialogu "Výběr adresáře", který vyvoláte kliknutím na tlačítko Vyhledat, zvolte
cestu k adresáři, ve kterém je záloha uložena (předpokladem je mít v dosahu prostor, ve kterém je záloha uložena)
a klikněte na tlačítko Uložit.
- Vyberte zálohu, z níž chcete obnovit databázový soubor - v seznamu označte zálohu příslušného data a času.
- Klikněte na tlačítko Obnovit.
- Určete, co udělat se stávajícím databázovým souborem:
- Přejmenovat - 602SQL serveru při obnově ze zálohy přejmenuje dosavadní databázový soubor
WB8.FIL, který leží ve složce, která byla určena při instalaci databáze (obvykle je to složka
C:\Program Files\Software602\602SQL81), na YYMMDDHH.mmX, kde YYMMDDHH je aktuální rok, měsíc, a den, mm
je minuta a X je P až S pro jednotlivé části souboru.
- Vymazat - dosavadní databázový soubor WB8.FIL bude nahrazen záložní kopií. Tím přijdete
o současná data bez možnosti jakékoliv obnovy. Tento způsob nedoporučujeme.
- Kliknutím na tlačítko OK spustíte obnovu databáze ze zálohy.
- Počkejte až obnova databáze dojede do konce (to může podle velikosti zálohy trvat minuty
až desítky minut).
- Zavřete Řídící konzoli 602SQL.
- Spusťte 602SQL server a ostatní programy (přijímač a odesílač zásilek).
Poznámka:
Předpokládáme, že se obnova databáze týká nedávné verze. Pokud by jste se snažili
o obnovu zálohy starší několika měsíců, je nutné pro chod Kaskády reinstalovat build 602SQL
i Kaskádu na starší verzi. To však již překračuje rámec této nápovědy a v případě, že se k
obnově starších záloh rozhodnete, kontaktujte hotline Kaskády.
Co dělat když nastane chyba při zálohování databáze
O tom, že záloha neproběhla řádně, se prostřednictvím alarmu dozví uživatel,
který je v globální konfiguraci určen pro
příjem "informací o chybách automatiky". Ten musí věnovat poskytnuté informaci řádnou péči a
pokud záloha neproběhla, zjistit důvod.
Zjištění důvodu je téměř vždy v jeho moci, bezkonkurenčně nejčastějším důvodem je
nedostatek místa na cílovém disku na který se zálohuje.
Pojďme projít postupně kroky, které ke zjištění příčiny vedou
- Prověřte nastavení v Kaskádě, Globální konfigurace
V kartě Obecné / Zálohování zjistěte, zda je zaškrtnuto "Zálohovat databázi při
nočním úklidu této datové větve".
Pokud to není zaškrtnuto (a není ani v žádné jiné datové větvi )
bude muset být čas zálohování určen přímo v Řídící konzole 602SQL.
- Prověřte nastavení v Řídící konzole 602SQL
Ve větvi Nástroje / Periodické zálohování zjistěte, jaký je cílový disk a složka pro zálohování.
Také zjistěte, zda je určen čas, přitom
- Pokud běží zálohování při nočním úklidu (viz. výše), má zde být nastaveno
"Neprovádět automaticky zálohy" (neboť se o to starají servisní vlákna a noční úklid).
- Jinak zde musí být určen nějaký čas zálohování.
- Prověřte, zda diskový prostor pro zálohování je přístupný
Prověřte, zda z počítače, na kterém je umístěn databázový soubor WB8.FIL (a na kterém běží 602SQL server)
je dostupný (viditelný) disk určený pro cíl zálohování. Pokud tomu tak není, požádejte svého správce IT o nápravu.
POZOR: Problém s přístupností cílového souboru může souviset s chodem
databázového serveru jako služby. Pokud server běží jako služba,
pak jeho prostředí a dostupnost okolních počítačů není totožný s tím, jak se systém chová vůči
uživateli (vám) pracujícímu na stejném počítači.
- Prověřte volný prostor na cílovém disku
Toto je naprosto nejčastější příčina problému.
Zjistěte velikost databázového souboru (WB8.FIL) a pak prověřte, zda volný prostor na
cílovém disku je více než dvojnásobný proti velikosti WB8.FIL
Dvojnásobek velikosti je nutným (okamžitým) technologickým minimem, jinak obecně platí pravidla,
uvedená výše, v závislosti na typu a zvolené periodicitě zálohování.
Pokud je místa nedostatek, uvolněte prostor, nebo zvolte jiný cíl pro zálohování.
- Prověřte, zda uživatel, jehož jménem běží SQL server má dostatečná práva zápisu
Prověřte, zda přihlášený uživatel, jehož jménem běží SQL server, má právo zápisu do diskového
prostoru určeného pro zálohování. Zkuste jeho jménem vytvořit libovolný soubor a smazat tento soubor.
Pokud je problém, požádejte svého správce IT o nápravu.
- Prověřte, zda zálohování nebrání antivirový program
Prověřte, zda na zdrojovém, ale především na cílovém počítači není spuštěný antivirový program.
Pokud ano, prověřte, zda nebrání zápisu souboru do diskového prostoru určeného pro zálohování.
Pokud je zde problém, požádejte svého správce IT o nápravu.
Příbuzná témata: