SQL Zálohování – Backup typy a strategie

SQL Server nabízí několik backup způsobů, které jdou mezi sebou kombinovat a vytvořit tak jejich kombinací různé varianty backup strategie.

Typy záloh v SQL Server

Full database backup (plná záloha) – Klasický způsob plné zálohy, kdy jsou do backupu zahrnuty všechny objekty (vč. systémových). Transakce (změny), které proběhnou v období kdy je backup vykonáván jsou také zahrnuty do zálohy.

Differential backup (rozdílová záloha) – tento backup zahrne do zálohy pouze změny, které se odehrály od posledního full backupu. To je samozřejmě výhoda, protože můžeme udělat jeden plný backup a následně dělat pouze diferenciální zálohy, jejichž zpracování trvá kratší čas (méně I/O operací) a zabere také méně diskového prostoru.

Transaction log backups (zálohy transakčního logu) – v toto případě jsou do zálohy zahrnuty pouze transakce, které se odehrály od poslední zálohy transakčního logu. Po provedení zálohy je vyčištěn .log soubor transakčního logu databáze a jsou do něj nahrávány další transakce až do doby provedení další zálohy transakčního logu.

Backup strategie

Volba vhodné backup strategie záleží na konkrétních potřebách. Je potřeba si uvědomit co chceme strategií sledovat a zjednodušeně řečeno stanovit si o kolik dat jsme ochotni přijít v případě, že se vyskytně nějaká neblahá událost a jak dlouho nám obnova zálohy zabere.

  • RPO (Recovery Point Objective)Metrika vyjádřená v minutách/hodinách, která stanovuje množství dat v časovém vyjádření o které si můžeme dovolit přijít (maximálně). Například si stanovíme, že pro aplikaci, která běži nad SQL Server db platformou je únosné když ztratíme nejvýše posledních 2h dat.
  • RTO (Recovery Time Objective) – Stanovuje maximální dobu během které musíme být schopni systém obnovit ze zálohy

V závislosti na těchto potřebách je poté potřeba zajistit vhodný recovery model databází. V případě, že máme RPO nastaveno např na 1 hodinu, tak nebudeme nutně potřebovat nastavit FULL Recovery model kdy se do .ldf file ukládá transakční historie. Vystačíme si se SIMPLE Revovery modelem kdy není zatěžován log transakční historií.

Je potřeba si uvědomit, že v nastavení SIMPLE vs FULL recovery modelu je poměrně znatelný rozdíl. Na čem? Na výkonu DDL/DML operací (ceteris paribus) a celkem značný rozdíl je také ve větších nákladech na storage (transakční log není zadarmo). Zálohy v případě, že nepotřebujeme transakční log můžou vypadat takto:

  • FULL Backup 1x denně
  • DIFF Backup 1x hodinu (lze dělat se SIMPLE Recovery modelem)

Kdybychom měli RPO nastaveno níže tak transakční log již potřebujeme a zálohy můžeme udělat třeba takhle:

  • FULL Backup 1x denně
  • DIFF Backup 1x hodinu
  • TRAN Backup 1x minutu

V druhém případě už budeme potřebovat změnit Recovery model na FULL, což s sebou přináší určité nevýhody a vyšší režie na správu databáze a diskového úložiště. Benefitem je ale jednoznačně možnost provést obnovu v podstatě do libovolného okamžiku v minulosti pro který máme zálohu transakčního logu – provedeme restore FULL zálohy následně DIFF a poté TRAN.

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení
SQL Zálohování – Backup typy a strategie
5 (100%) 3 votes

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

This site uses Akismet to reduce spam. Learn how your comment data is processed.