SQL Zálohování – Backup Typy (Simple, Full, Diff) a Volba Strategie

Poslední aktualizace:

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.

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í.

SQL Zálohování – Backup Typy (Simple, Full, Diff) a Volba Strategie
5 (100%) 5 vote[s]

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Category: SQL Administrace Tags: ,

About Ing. Jan Zedníček - BI Developer, Finance controller

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published.

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