|
Ochrana záložní kopií | Principy zabezpečení systému | Ochrana parciálním zálohováním |
Jedním ze způsobů, jak zajistit databázi proti ztrátě dat, je pravidelné zálohování celého databázového souboru. Níže jsou popsány způsoby zálohování a jejich vlastnosti. Není zde popsáno, jak zálohovat data z důležitých tabulek exportem do souboru.
Zálohu databáze lze pořídit tak, že se databázový soubor zkopíruje na jiné místo. Toto kopírování lze provádět pouze tehdy, když nad souborem neběží databázový server, jinak nelze zaručit integritu zkopírované databáze.
Na Řídicím panelu, stránka Systém / Nástroje / Automatické zálohování lze stisknout tlačítko Zálohovat teď. Jsou-li v témže dialogu zadány parametry zálohování (viz násl. odstavec - alespoň adresář pro záložní soubor), provede se záloha bez ohledu na plán automatických záloh.
Na Řídicím panelu, stránka Systém / Nástroje / Automatické zálohování (nebo pomocí API funkce Get_property_value) lze nastavit vlastnosti serveru Backup..., definující automatické zálohování databáze. Toto zálohování může probíhat buď se zadanou periodou od startu serveru, nebo v určenou dobu a v určené dny.
Vlastnost | Význam | Příklad hodnoty |
BackupDirectory | adresář pro zálohu | e:\zaloha |
BackupFilesLimit | počet ponechaných záloh | 7 |
BackupZip | komprimovat zálohy | 1 |
BackupZipMoveTo | adresář, kam se zkopíruje zkomprimovaná záloha | w:\zaloha |
BUĎ Zálohovat periodicky | ||
BackupIntervalHours | záloha serveru se provede po N hodinách | 12 |
BackupIntervalMinutes | ... a M minutách běhu | 0 |
NEBO Zálohovat v určenou dobu | ||
BackupTimeDay1 | určení dne zálohy | 9 |
BackupTimeHour1 | určení hodiny zálohy | 6 |
BackupTimeMin1 | určení minuty zálohy | 0 |
BackupTimeDay2 | určení dne zálohy | 9 |
BackupTimeHour2 | určení hodiny zálohy | 18 |
BackupTimeMin2 | určení minuty zálohy | 0 |
BackupTimeDay3 | určení dne zálohy | 10 |
BackupTimeHour3 | určení hodiny zálohy | 0 |
BackupTimeMin3 | určení minuty zálohy | 30 |
V uvedených příkladech se zálohuje každých 12 hodin nebo v pracovní dny (po-pá 2x denně v 6:00 a 18:00 a v so+ne 30 min po půlnoci). Číselník s určením dne:
1 | denně |
2 | pondělí |
3-8 | úterý až neděle |
9 | pracovní dny (po-pá) |
10 | volné dny (so-ne) |
Záloha se vytváří v adresáři určeném BackupDirectory. Přitom se může testovat, kolik záloh se v tomto adresáři již nachází, a pokud jejich počet překročí nastavený limit BackupFilesLimit, nejstarší záloha se smaže. Záložním souborům se přidělí jméno ve tvaru YYMMDDhh.mmX, kde YYMMDD je rok, měsíc a den, hhmm je hodina a minuta, X je A až D pro jednotlivé části databázového souboru.
Z takto vytvořených záloh lze databázový soubor kdykoli snadno obnovit pomocí tlačítka Obnovit! na záložce Správa dialogu Správa databáze (přístupné z popup menu u lokálního nespuštěného serveru).
Pokud se během práce serveru začne vytvářet záloha v blokujícím režimu, provádění většiny operací je pozastaveno na dobu, po kterou se vytváří kopie souboru. V neblokujícím režimu lze v práci pokračovat.
Bezprostředně po vytvoření zálohy se zavolá systémový trigger _on_backup. Díky tomu lze reagovat na úspěšné i neúspěšné zálohování (např. odesláním mailu správci). Případná komprimace (viz násl. odstavec) se na výsledek zálohování předaný v _on_backup již neprojeví, protože probíhá asynchronně.
Je-li pomocí vlastnosti BackupZip zapnuta komprimace záloh, pak se každá nová záloha po vytvoření v adresáři BackupDirectory ihned komprimuje, přesune do adresáře určeného vlastností BackupZipMoveTo (je-li zadán nebo je přístupný) a následně smaže z adresáře BackupDirectory.
Pomalá komprimace a následný přesun zálohy probíhá asynchronně v samostatném vlákně, takže neblokuje SQL server.
Komprimované automaticky vytvářené zálohy jsou v souboru jménem YYMMDDhh.mmz.
I u komprimovaných záloh funguje udržování stanoveného počtu posledních záloh - adresáře zadané v BackupZipMoveTo a BackupDirectory se však musí lišit.
Komprimaci automatických záloh je lepší provádět na rychlém médiu, ale zálohy je často třeba uložit na externí pomalé médium. Zkomprimované zálohy (pomocí ZIP) jsou podstatně menší než původní databázový soubor.
Zálohování databáze může explicitně vyvolat databázová aplikace, například tehdy, když její uživatel zvolí tuto akci v menu nebo když počet provedených změn v databázi překročí určitou mez.
Explicitní zálohování provádí funkce Backup_database_file. Podobně jako u automatického zálohování je přitom pozastavena většina normálních operací serveru.
Pomocí generického triggeru _ON_SYSTEM_EVENT s parametrem event_num rovným 1 lze ovlivit (i odvolat) provedení zálohy.
Zálohování databázového serveru lze provádět ve dvou režimech:
Režimy zálohování se volí na Řídicím panelu, stránka Systém / Nástroje / Automatické zálohování pomocí přepínače Neblokovat práci serveru... nebo pomocí API funkce Get_property_value) lze nastavit vlastnosti serveru NonblockingBackups.
Externí fulltextové systémy nejsou uloženy v databázovém souboru ale v souborech na disku, proto je třeba je zálohovat zvlášť. Záloha se však děje automaticky, a to i v případě neblokujícího zálohování. Záložním souborům se přidělí jméno ve tvaru YYMMDDhh.mm.jméno_aplikace.jméno_ftx_systému.ftx, kde YYMMDD je rok, měsíc a den, hhmm je hodina a minuta zálohy, zbytek je název souboru s fultextovým indexem.
Zálohu externích ftx. indexů nelze obnovit jinak než překopírováním souboru na správné místo.
Ochrana záložní kopií | Principy zabezpečení systému | Ochrana parciálním zálohováním |