Bc. David Gešvindr MCT | MSP | MCTS | MCITP | MCPD 1. Návrh strategie zálohování 2. Zálohování uživatelských databází 3. Obnova uživatelských databází 4. Obnova z databázového snapshotu Typ zálohy Popis Full Zálohuje všechny datové soubory a část transakčního logu Differential Zálohuje změněné datové stránky od poslední plné zálohy a nové záznamy v TL od poslední plné zálohy Transaction Log Zálohuje změny popsané v transakčním logu Recovery Model Popis Simple • Záloha transakčního logu není podporována • Nepotřebné části transakčního logu se automaticky odstraňují po dokončení transakce Full • Záloha transakčního logu je podporována • Při havárii nedojde ke strátě žádných dat (TailLog Backup) • Je možné provést obnovu databáze do konkrétního časové okamžiku Bulk Logged • Upravená verze Full režimu logující bulk operace jako celek nikoliv po řádcích • Menší transakční log, potenciálně vyšší výkon Provádí kompletní kopii databáze Vhodné pro malé databáze Je typicky prvním druhem zálohy, který je třeba obnovit po havárii Předpokládá provádění plných záloh Nahrazuje některé plné zálohy Ukládá změněné stránky od poslední plné zálohy Vhodná pokud se mění jen část databáze častěji než zbytek Předpokládá provádění plných záloh Nahrazuje některé plné zálohy Zálohují se změny prováděné v databázi uložené ve formě transakčního logu Umožňuje databázi obnovit do libovolného časového okamžiku Zálohy je výhodné kombinovat Např.: 2x do týdne plná záloha 1x denně diferenciální Každých 15 minut záloha transakčního logu Při plánování vycházejte z obsahu databáze Kolik dat (za jaký časový úsek) je přípustné ztratit? Jsou zapisovány do zálohovacích zařízení Soubor na pevném disku Pásková jednotka SQL Server si v databázi MSDB uchovává historii záloh každé databáze Právo zálohovat mají jen: Sysadmin Members (Server Role) Db_owner Members (Database Role) Db_backupoperator (Database Role) Provedení kontroly integrity databáze provedete příkazem: V databázi může dojít k poškození uložení některých objektů, případně jejich špatné alokaci DBCC CHECKDB Tail Log Backup Zálohuje konec transakčního logu Potřeba pokud nechceme ztratit žádná data Není třeba když si vystačíme s již provedenými zálohami NO_TRUNCATE Copy Only Backup Nenaruší pořadí obnovování databáze Záloha není uvedena v MSDB Neořízne se transakční log Novinka v SQL Serveru 2008 Zmenší velikost zálohy Zvýší výkon I/O ale zvýší zátěž na CPU Podporováno v edicích Enterprise, BI i Standard http://msdn.microsoft.com/en-us/library/bb964719(v=sql.110).aspx Mirrored Media Sets Backup Verification Checksums Zálohovat je sice hezké, ale důležité je, aby šla záloha obnovit http://msdn.microsoft.com/en-us/library/ms175053(SQL.100).aspx http://msdn.microsoft.com/en-us/library/ms189587(SQL.100).aspx 1. Fáze kopírování dat 2. Fáze zapsání již dokončených transakcí na disk (Redo Phase) 3. Pokud: a) WITH RECOVERY Fáze zrušení nepotvrzených transakcí a přepnutí databáze do použitelného stavu (Undo Phase) b) WITH NO RECOVERY Ponechání rozpracovaných transakcí aby mohla navázat další obnova zálohy 1. Podle situace proveďte Tail-log backup 2. Ujasněte si, do jakého okamžiku chcete databázi obnovit 3. Ujasněte si postup obnovy 4. Zjistěte, které zálohy bude pro obnovu třeba 5. Začněte obnovu 1. Poslední Full Backup 2. Poslední Differential Backup 3. Všechny zálohy transakčního logu od poslední FB/DB po daný cílový okamžik 1. Přepněte databázi AdventrureWorks do Full Recovery režimu 2. Ověřte integritu této databáze 3. Vytvořte první plnou zálohu této databáze 4. Spusťte následující SQL dotaz: UPDATE Person.Contact SET FirstName = 'Carl' WHERE FirstName = 'John' 1. Proveďte diferenciální zálohu této databáze 2. Proveďte zálohu transakčního logu této databáze 3. Porovnejte velikost diferenciální zálohy a zálohy transakčního logu 4. Proveďte 2. plnou zálohu do jiného souboru se zapnutou kompresí a určete v % kolik místa se ušetřilo 1. Zazálohujte databázi všemi 3 druhy záloh v pořadí Full, Differential a Transaction Log 2. Vytvořte ještě jednu zálohu transakčního logu 3. Obnovte databázi AdventureWorks do stavu 10s před provedením poslední zálohy transakčního logu 4. Obnovte databázi AdventureWorks do původní podoby 5. Zazálohujte databázi všemi 3 druhy záloh v pořadí Full, Differential a Transaction Log 6. Vytvořte ještě jednu zálohu transakčního logu 7. Proveďte operaci v MARKED TRANSACTION 8. Obnovte databázi AdventureWorks do stavu před provedením označené transakce Read-only pohled na databázi v konkrétním stavu Typické použití: Tvorba reportů nad databází v určitém okamžiku Ochrana před chybou uživatele/správce Rychlá obnova dat Zápis: Copy-on-write Čtení databázového snapshotu Komponenta SQL Serveru sloužící jako časovač Vytváříme Job, tvořen kroky (Job Step) Umožňuje spustit: T-SQL skript PowerShell skript Externí aplikace SSIS balíček Spouštění je řízeno časovým plánem Umožňuje definovat Alerty a Operátory Využití: Když dojde k selhání některého kroku je o tom informován emailem operátor co má právě službu Vyžaduje nakonfigurovaný Database Mail Postaveny nad SSIS Umožňují vizuální sestavení plánů údržby databází v dané instanci formou workflow Jsou spouštěny SQL Agentem v daných časech 1. Vytvořte Maintenance plán, který pokrývá kompletní údržbu databáze a obsahuje i upozornění pro operátory