• 6.12.2018
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 0

SQL Server nabízí několik backup způsobů. Tyto typy záloh pak jdou mezi sebou kombinovat a vytvořit tak jejich kombinací různé varianty backup strategie nad SQL Serverem.

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.

Zálohování není radno podcenit a je dobré o principech zálohování něco vědět. To ovšem neznamená, že se se zálohováním musíme trápit sami. Na trhu existuje spousta nástrojů, které zálohování pomáhají automatizovat jako je například  SQLBackupandFTP. Nástroj jsem vyzkoušel a jeho hodnocení najdete v článku SQLBackupandFTP- Nástroj na Zálohování SQL databází zdarma + Hodnocení.

5/5 - (5 votes)

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *