Sdílej nyní:
Obsah skrýt

Zálohování SQL Server databázi s naším kompletním průvodcem pro rok 2025. Podrobné pokyny a osvědčené postupy pro všechny úrovně dovedností.

1. Úvod do SQL Server Zálohování

1.1 Co je SQL Server Zálohování?

SQL Server Zálohování je proces vytváření kopií souborů databáze za účelem ochrany před ztrátou dat. Záloha zachycuje stav vaší databáze v určitém časovém okamžiku, což vám umožňuje obnovit data v případě selhání hardwaru, lidských chyb nebo katastrof.

SQL Server Ve výchozím nastavení ukládá zálohy do souborů .bak, které obsahují všechny databázové objekty včetně tabulek, uložených procedur, zobrazení, indexů a transakčních protokolů.

1.2 Proč SQL Server Zálohování je klíčové

Zálohy databází slouží jako vaše poslední linie obrany proti ztrátě dat. Bez řádných záloh vaše organizace riskuje:

  • Trvalá ztráta dat z důvodu selhání nebo poškození hardwaru
  • Prodloužená prostoje během pokusů o zotavení
  • Narušení podnikání a ztráta příjmů
  • Porušení souladu pokud data nelze obnovit
  • Poškození reputace z přerušení služeb

Běžné SQL Server Zálohy zajišťují kontinuitu podnikání a splňují regulační požadavky na ochranu dat.

1.3 Běžné scénáře ztráty dat

Pochopení toho, kdy dochází ke ztrátě dat, vám pomůže vyvinout efektivní strategii zálohování:

  • Selhání hardwaru: Pády disku, poruchy serveru nebo selhání úložného systému
  • Lidské chyby: Náhodné smazání, nesprávné aktualizace nebo vyřazené tabulky
  • Problémy se softwarem: Chyby aplikací, poškozené aktualizace nebo pády systému
  • Narušení bezpečnosti: Útoky ransomwaru, škodlivé mazání nebo neoprávněný přístup
  • Přírodní katastrofy: Požáry, záplavy nebo výpadky proudu postihující datová centra

2. Porozumění SQL Server Typy zálohování

SQL Server podporuje více typů záloh, z nichž každý splňuje jiné potřeby obnovy a požadavky na úložiště.

2.1 Úplná záloha

Úplná záloha vytvoří kompletní kopii celé databáze, včetně všech datových souborů a části transakčního protokolu potřebného pro obnovení.

2.1.1 Kdy použít úplnou zálohu

Úplné zálohy jsou ideální pro:

  • Stanovení základní linie pro ostatní typy záloh
  • Malé až střední databáze, kde je doba zálohování přijatelná
  • Týdenní nebo měsíční plány zálohování
  • Databáze s častými změnami

2.1.2 Výhody a omezení úplné zálohy

Výhody:

  • Nejjednodušší proces obnovy – jeden soubor obsahuje vše
  • Samostatné a nezávislé na jiných zálohách
  • Nejrychlejší doba obnovy pro kompletní obnovu databáze

Omezení:

  • Vyžaduje značný úložný prostor
  • Delší doba zálohování pro velké databáze
  • Vyšší spotřeba zdrojů během zálohovacích operací

2.2 Diferenciální záloha

Rozdílová záloha zachycuje pouze změny dat od poslední úplné zálohy, čímž se snižuje doba zálohování a požadavky na úložiště.

2.2.1 Jak funguje diferenciální zálohování

Rozdílové zálohy sledují úpravy pomocí změněných extentů. Při obnově... SQL Server nejprve použije poslední úplnou zálohu a poté použije most nedávná rozdílová záloha.

2.2.2 Plná vs. diferenciální záloha

Plná vs. diferenciální záloha

Vzhled Plná záloha Diferenciální zálohování
Velikost Kompletní databáze Pouze změny od poslední úplné zálohy
Čas zálohy Nejdelší Rychlejší než plný
Obnovte proces Obnova jednoho souboru Vyžaduje plný + diferenciál
Požadováno úložiště Most prostor Zpočátku méně místa, časem se rozrůstá

2.3 Záloha protokolu transakcí

Zálohy transakčních protokolů zachycují všechny transakce od poslední zálohy protokolu, což umožňuje obnovení k určitému bodu v čase.

2.3.1 Principy transakčních protokolů

Transakční protokol zaznamenává každou změnu v databázi. Zálohy protokolů zkracují neaktivní část protokolu, čímž zabraňují jeho neomezenému růstu a zaplňování disku.

2.3.2 Obnova v daném časovém bodě

Zálohy transakčních protokolů vám umožňují obnovit databázi do libovolného konkrétního okamžiku v rámci zálohy protokolu. To je klíčové pro obnovu po náhodných úpravách nebo smazání dat.

Pro provedení obnovy v daném časovém bodě potřebujete:

  • Poslední úplná záloha
  • Most nedávná rozdílová záloha (volitelné)
  • Všechny zálohy protokolu transakcí z plné/rozdílové zálohy do vaší tardostat čas

2.4 Záloha koncového protokolu

Zálohy koncových protokolů zachycují záznamy protokolů, které dosud nebyly zálohovány, čímž zabraňují ztrátě dat a udržují neporušený řetězec protokolů. Před obnovením SQL Server Pro obnovení databáze do posledního bodu v čase je nutné zálohovat konec jejího transakčního protokolu. Záloha koncového protokolu je poslední zálohou, která vás v plánu obnovy databáze zajímá.

Diagram vysvětlující zálohy koncových protokolů v SQL Server.

Poznámka: Ne všechny scénáře obnovy vyžadují zálohu koncového protokolu. Záloha koncového protokolu není potřeba, pokud je bod obnovy obsažen v dřívější záloze protokolu. Záloha koncového protokolu je také zbytečná, pokud přesouváte nebo nahrazujete (přepisujete) databázi a nepotřebujete ji obnovit do určitého bodu po jejím nahrání.ost nedávná záloha.

2.4.1 Kdy jsou zálohy koncových protokolů nezbytné

Následující scénáře popisují, kdy byste měli zálohovat koncový protokol:

Obnova online databáze: Pokud je databáze online a plánujete provést operaci obnovení databáze, začněte zálohováním konce protokolu. Abyste se vyhnuli chybě u online databáze, musíte při zálohování použít možnost WITH NORECOVERY v příkazu BACKUP jazyka Transact-SQL. SQL Server databáze.

Obnova databáze offline: Pokud je databáze offline a nepodaří se ji spustittara potřebujete obnovit databázi, nejprve zálohujte konec protokolu. Protože v tuto chvíli nemohou probíhat žádné transakce, je použití možnosti WITH NORECOVERY volitelné. NORECOVERY je v tomto scénáři v podstatě totéž co záloha protokolu transakcí pouze s kopií.

Poškozená záloha databáze: Pokud je databáze poškozena, zkuste vytvořit zálohu koncové části protokolu pomocí volby WITH CONTINUE_AFTER_ERROR v příkazu BACKUP. V poškozené databázi může být záloha koncové části protokolu úspěšná pouze v případě, že soubory protokolu nejsou poškozené, databáze je ve stavu, který podporuje zálohy koncových protokolů, a databáze neobsahuje žádné hromadně zaznamenané změny. Pokud nelze vytvořit zálohu koncových protokolů, budou všechny transakce provedené po posledním MS... SQL Server záložní databáze jsou lost.

2.4.2 Klíčové možnosti pro zálohy koncových protokolů

S NORECOVERY: Pokud zálohujete část protokolu online databáze, kterou plánujete následně obnovit, použijte WITH NORECOVERY. NORECOVERY přepne databázi do offline režimu. Můžete také zálohovat SQL Server protokol koncové části offline databáze. Pokud chcete databázi ponechat offline, použijte volbu WITH NORECOVERY. Upozorňujeme, že protokol bude zkrácen, pokud nezadáte možnost COPY_ONLY nebo NO_TRUNCATE.

S POKRAČOVÁNÍM PO CHYBĚ: Volbu CONTINUE_AFTER_ERROR použijte pouze v případě, že zálohujete konec poškozené databáze. Při zálohování konce protokolu v poškozené databázi nemusí být některá metadata obvykle zachycená v zálohách protokolů k dispozici.

2.5 Záloha pouze pro kopírování

Zálohy pouze pro kopírování vytvářejí nezávislou zálohu bez ovlivnění normální sekvence záloh. Nenarušují řetězce diferenciálních záloh ani kontinuitu transakčního protokolu.

Používejte zálohy pouze pro kopírování pro:

  • Vytváření testovacích nebo vývojových kopií databáze
  • Ad-hoc zálohy bez ovlivnění plánovaných záloh
  • Záloha před většími změnami nebo testováním

2.6 Zálohování souborů a skupin souborů

Zálohy souborů a skupin souborů tarzískat konkrétní soubory databáze nebo skupiny souborů, nikoli celou databázi. Tento přístup funguje dobře pro velmi rozsáhlé databáze, kde zálohování všeho trvá příliš dlouho.

Mezi výhody patří:

  • Rychlejší zálohování velkých databází
  • Paralelní zálohování více skupin souborů
  • Možnosti granulární obnovy
  • Optimalizované plány zálohování pro skupiny souborů pouze pro čtení

2.7 Částečná záloha

Částečné zálohy zahrnují všechna data v primární skupině souborů a ve všech skupinách souborů s povolením pro čtení i zápis, s výjimkou skupin souborů pouze pro čtení. To snižuje velikost a čas zálohování databází se statickými historickými daty uloženými ve skupinách souborů pouze pro čtení.

3. SQL Server Modely obnovy

SQL Server Modely obnovy určují, které typy záloh jsou k dispozici a jak jsou spravovány transakční protokoly.

3.1 Jednoduchý model obnovy

3.1.1 Charakteristiky a případy použití

Jednoduchá obnova automaticky zkrátí transakční protokol po každém kontrolním bodu a uvolní tak místo bez nutnosti zálohování protokolů.

Nejlepší pro:

  • Vývojové a testovací databáze
  • Databáze, u kterých je ztráta dat mezi zálohami přijatelná
  • Datové sklady s ETL procesy, které lze znovu spustit
  • Databáze pouze pro čtení nebo pro vytváření sestav

3.1.2 Dostupné možnosti zálohování

Jednoduchá obnova podporuje:

  • Plné zálohy
  • Diferenciální zálohy
  • Zálohy souborů a skupin souborů
  • Zálohy pouze pro kopírování

Zálohy transakčních protokolů jsou není k dispozici v jednoduchém modelu obnovy.

3.2 Model úplné obnovy

3.2.1 Vlastnosti a výhody

Úplná obnova zaznamenává všechny transakce a uchovává záznamy protokolu, dokud je nezálohujete. To umožňuje úplnou obnovu dat do libovolného časového bodu v rámci zálohy protokolu transakcí.

Hlavní výhody:

  • Minimální potenciál ztráty dat
  • Možnost obnovení v daném časovém bodě
  • Podporuje odesílání protokolů a zrcadlení databáze
  • Maximální flexibilita zotavení

3.2.2 Správa transakčních protokolů

V rámci úplné obnovy je nutné provádět pravidelné zálohy transakčních protokolů, aby bylo možné:

  • Zabraňte zaplňování místa na disku protokolem transakcí
  • Udržujte nepřetržitý zálohovací řetězec
  • Povolit obnovení v určitém okamžiku
  • Řízení růstu souborů protokolu

Typický plán zálohování: úplné zálohy týdně, rozdílové zálohy denně, zálohy protokolů každých 15–30 minut.

3.3 Model hromadné obnovy protokolovaných dat

3.3.1 Kdy použít hromadné protokolování

Hromadně protokolovaná obnova minimálně protokoluje hromadné operace, jako je BULK INSERT, SELECT INTO a opětovné sestavení indexu, a zároveň zachovává plné protokolování pro běžné transakce.

Hromadné obnovení protokolováno použijte v následujících případech:

  • Provádění velkých hromadných importních operací
  • Obnovení indexů na velkých tabulkách
  • Provádění operací, které využívají minimální protokolování
  • Potřeba zmenšit velikost transakčního protokolu během specifických operací

3.3.2 Omezení a úvahy

Důležitá omezení:

  • Obnovení k určitému bodu v čase není během hromadných operací k dispozici.
  • Zálohy protokolů jsou větší při hromadných operacích.
  • V případě potřeby je nutné přepínat mezi plným a hromadným protokolováním.

3.4 Výběr správného modelu obnovy

Vyberte si model obnovy na základě obchodních požadavků:

Model obnovy Riziko ztráty dat Point-in-Time Recovery nejlepší
prostý Změny od poslední zálohy Ne Vývoj/test, přijatelná ztráta dat
Plný Minimální (obvykle minuty) Ano Produkční databáze, kritická data
Hromadně protokolováno Změny od poslední zálohy protokolu Omezeno během hromadných operací Temporarpoužití během hromadných operací

4. Zálohování SQL Server Databáze používající SSMS

4.1 Předpoklady a příprava

Před zálohováním vašeho SQL Server databázi, zajistěte:

  • Máte příslušná oprávnění (oprávnění db_owner nebo BACKUP DATABASE).
  • Dostatečné místo na disku pro záložní soubor
  • SQL Server Nainstalováno Management Studio (SSMS)
  • Síťové cesty dostupné při zálohování do síťových umístění

4.2 Podrobný postup: Úplná záloha pomocí SSMS

Postupujte podle těchto kroků a vytvořte úplnou zálohu svého SQL Server databáze pomocí SSMS.

4.2.1 Otevření SQL Server Management studio

  1. zahájit SQL Server Management studio
  2. Zadejte název svého serveru do Název serveru pole
  3. Vyberte metodu ověřování
  4. klikněte mítinky Connect

4.2.2 Výběr možností databáze a zálohování

  1. In Průzkumník objektů, rozbalte Databáze uzel
  2. Klikněte pravým tlačítkem myši na databázi, kterou chcete zálohovat
  3. vybrat Úkoly -> zálohovat
    Starúloha zálohování pro SQL Server databáze v SQL Server Studio pro správu.
  4. v Zálohovat databázi okno, ověřte název databáze
  5. vybrat Plný jako Typ zálohy
    Vytvořte úplnou zálohu SQL Server databáze v SQL Server Studio pro správu.

4.2.3 Konfigurace cíle zálohy

  1. Pod Destinace, Klepněte na tlačítko Odstranit vymazat výchozí cestu (pokud je to potřeba)
  2. klikněte přidat určení nového umístění zálohy
  3. Zadejte cestu k souboru a jeho název pomocí BAK rozšíření
  4. klikněte OK pro potvrzení cíle

Nastavte cíl zálohy v SQL Server Studio pro správu.

4.2.4 Advanced Backup Nastavení

  1. klikněte Možnosti médií v levém panelu
  2. Vyberte možnosti zálohování:
    • Přepsat všechny existující zálohy – Nahrazuje stávající zálohy
    • Přidat k existující zálohovací sadě – Přidává do existujícího záložního souboru

    Nastavte možnosti zálohovacích médií v SQL Server Studio pro správu.

  3. klikněte Možnosti zálohování v levém panelu
  4. Konfigurace volitelných nastavení:
    • Komprimovat zálohu – Snižuje velikost zálohovaného souboru
    • Šifrování zálohy – Chrání citlivá data
    • Po dokončení ověřte zálohu – Kontroluje integritu záloh

    Nastavte možnosti zálohování v SQL Server Studio pro správu.

4.2.5 Spuštění zálohy

  1. Zkontrolujte všechna nastavení v Zálohovat databázi okno
  2. klikněte OK na starproces zálohování
  3. Počkejte na dokončení zálohování
  4. Po dokončení zálohy se zobrazí zpráva o úspěchu.
  5. klikněte OK zavřete potvrzovací dialog

4.3 Vytváření rozdílové zálohy pomocí SSMS

Chcete-li vytvořit rozdílovou zálohu, postupujte stejně jako u úplné zálohy, ale vyberte Rozdíl jako typ zálohy v kroku 4.2.2. Nezapomeňte, že rozdílové zálohy vyžadují jako výchozí bod předchozí úplnou zálohu.

Vytvořte rozdílovou zálohu SQL Server databáze v SQL Server Studio pro správu.

4.4 Vytvoření zálohy transakčního protokolu pomocí SSMS

Zálohy transakčních protokolů jsou k dispozici pouze pro databáze používající modely úplné nebo hromadné obnovy.

  1. Klikněte pravým tlačítkem myši na databázi v Průzkumník objektů
  2. vybrat Úkoly -> zálohovat
  3. Vybrat Protokol transakcí jako typ zálohy
  4. Nakonfigurujte cíl a možnosti dle potřeby
  5. klikněte OK vytvořit zálohu protokolu

Vytvořte zálohu transakčního protokolu SQL Server databáze v SQL Server Studio pro správu.

4.5 Vytváření zálohy pouze pro kopírování pomocí SSMS

Zálohy pouze pro kopírování nenarušují běžnou sekvenci záloh.

  1. Postupujte podle kroků pro vytvoření úplné zálohy
  2. v Možnosti zálohování strana
  3. Zkontrolovat Záloha pouze pro kopírování volba
  4. Dokončete proces zálohování normálně

Vytvořte zálohu pouze pro kopírování SQL Server databáze v SQL Server Studio pro správu.

5. Zálohování SQL Server Databáze s využitím T-SQL

5.1 Základní syntaxe zálohování databáze

Příkaz T-SQL BACKUP DATABASE poskytuje programové ovládání nad SQL Server zálohy.

BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;

5.2 Úplné zálohování příkazů T-SQL

5.2.1 Jednoduchý skript pro úplnou zálohu

Vytvořte základní úplnou zálohu s minimálními možnostmi:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO

5.2.2 Úplná záloha s možnostmi

Přidejte popisné informace a možnosti formátování:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
     INIT,
     NAME = 'AdventureWorks-Full Database Backup',
     DESCRIPTION = 'Full backup of AdventureWorks database',
     STATS = 10
GO

Vysvětlení možností:

  • FORMAT – Vytvoří novou zálohovací sadu
  • INIT – Přepíše existující záložní soubor
  • JMÉNO – Přiřadí název zálohovací sady
  • POPIS – Přidává popisný text
  • STATS – Zobrazuje pokrok každých 10 %

5.3 Příkazy T-SQL pro diferenciální zálohování

Rozdílové zálohy používají možnost ROZDÍLOVÝ:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
     INIT,
     NAME = 'AdventureWorks-Differential Backup',
     STATS = 10
GO

5.4 Zálohování transakčních protokolů pomocí příkazů T-SQL

Pro zálohy transakčních protokolů použijte ZÁLOŽNÍ PROTOKOL:

BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
     NAME = 'AdventureWorks-Transaction Log Backup',
     STATS = 10
GO

5.5 Pokročilé možnosti zálohování T-SQL

5.5.1 Zálohování do více souborů

Rozdělte zálohu mezi více souborů pro rychlejší výkon:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
   DISK = 'D:\Backups\AdventureWorks_2.bak',
   DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO

5.5.2 Zálohování s kompresí

Snižte velikost zálohy a šířku pásma sítě:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
     INIT,
     STATS = 10
GO

5.5.3 Zálohování se šifrováním

Chraňte citlivá data šifrováním:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     ),
     STATS = 10
GO

5.5.4 Zálohování s ochranou heslem

Přidat ochranu heslem (zastaralé, použijte místo toho šifrování):

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
     INIT
GO

5.5.5 Zrcadlené zálohy

Vytvořte simultánní kopie do různých umístění:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO

5.6 Příklady a skripty zálohování T-SQL

Kompletní zálohovací skript s ošetřením chyb:

DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);

SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';

BEGIN TRY
    BACKUP DATABASE @DatabaseName
    TO DISK = @BackupPath
    WITH COMPRESSION,
         INIT,
         NAME = @DatabaseName + '-Full Backup',
         STATS = 10;
    
    PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
    PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO

6. Zálohování SQL Server Databáze pomocí PowerShellu

6.1 Rutiny zálohování PowerShellu

SQL Server Modul PowerShellu poskytuje cmdlety pro automatizaci zálohování:

  • Zálohování SQLDatabase – Vytváří zálohy databáze
  • Obnovit SQLDatabase – Obnovuje zálohy databáze
  • Get-SqlDatabase – Načítá informace z databáze

Importujte SQL Server modul:

Import-Module SqlServer

6.2 Vytváření zálohovacích skriptů pomocí PowerShellu

Základní příkaz pro zálohování PowerShellu:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks.bak" `
                    -BackupAction Database `
                    -CompressionOption On

Příklad diferenciální zálohy:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
                    -BackupAction Database `
                    -Incremental

Záloha transakčního protokolu:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Log.trn" `
                    -BackupAction Log

6.3 Automatizace záloh pomocí PowerShellu

Vytvořte automatický zálohovací skript pro více databází:

# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"

# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
    New-Item -ItemType Directory -Path $BackupPath
}

# Backup each database
foreach ($Database in $Databases) {
    $BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
    
    try {
        Backup-SqlDatabase -ServerInstance $ServerInstance `
                          -Database $Database `
                          -BackupFile $BackupFile `
                          -BackupAction Database `
                          -CompressionOption On
        
        Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
    }
    catch {
        Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
    }
}

7. Zálohování SQL Server Databáze pomocí příkazového řádku

SQL Server poskytuje nástroje příkazového řádku, které umožňují zálohování SQL Server databázi bez použití SSMS nebo grafických rozhraní. Tyto nástroje jsou nezbytné pro automatizaci, skriptování a scénáře vzdálené správy.

7.1 Použití záložní databáze SQLCMD

SQLCMD je moderní nástroj příkazového řádku pro SQL Server který nahradil OSQL. Poskytuje vylepšené funkce a je doporučeným nástrojem pro spouštění příkazů T-SQL z příkazového řádku.

7.1.1 Základní syntaxe SQLCMD

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: Určuje SQL Server název instance
  • -d: Určuje název databáze
  • -Otázka: Provede dotaz a ukončí práci.
  • -A: Používá ověřování systému Windows
  • -U: Specifikuje SQL Server přihlašovací uživatelské jméno
  • -P: Určuje heslo pro SQL Server přihlásit se

7.1.2 Vytvoření zálohy pomocí SQLCMD

Zálohovat SQL Server Pomocí SQLCMD postupujte takto:

  1. Otevřená Příkazový řádek or PowerShell
  2. Přejděte na SQL Server adresář nástrojů (obvykle se přidává do PATH během instalace)
  3. Spusťte příkaz SQLCMD pro zálohování databáze s příslušnými parametry.
  4. Ověřte, zda byl záložní soubor úspěšně vytvořen

Příklad příkazu pro úplnou zálohu s použitím ověřování systému Windows:

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Příklad použití SQL Server Ověření:

sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Vytvoření rozdílové zálohy pomocí SQLCMD

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"

Vytvoření zálohy transakčního protokolu pomocí SQLCMD

sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"

7.1.3 Zálohování databáze vydavatele v SQL Server replikace

Při zálohování databází vydavatele v SQL Server Replikace, použijte možnost WITH REPLICATION k zachování metadat replikace a zajištění transakční konzistence.

-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB 
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION, 
     COMPRESSION,
     CHECKSUM,
     INIT,
     STATS = 10;
GO

Pro více informací o SQL Server replikace, viz naše komplexní průvodce.

7.2 Použití záložní databáze OSQL

OSQL je starší nástroj příkazového řádku pro SQL ServerAčkoli Microsoft doporučuje používat SQLCMD, OSQL zůstává k dispozici pro zpětnou kompatibilitu se staršími skripty a systémy.

7.2.1 Základní syntaxe OSQL

Syntaxe OSQL je podobná SQLCMD:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: SQL Server název instance
  • -d: Jméno databáze
  • -Otázka: Provede dotaz a ukončí se
  • -A: Používá důvěryhodné připojení (ověřování systému Windows)
  • -U: Přihlašovací uživatelské jméno
  • -P: Přihlašovací heslo

7.2.2 Vytvoření zálohy pomocí OSQL

Provedení operací zálohování databáze OSQL:

  1. Otevřená Příkazový řádek
  2. Ověřte, zda je OSQL ve vašem SQL Server instalace
  3. Spusťte příkaz zálohování OSQL

Příklad úplné zálohy:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"

Příklad rozdílové zálohy:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"

8. Třetí strana SQL Server Zálohovací nástroje

Zatímco SQL Server zahrnuje nativní funkce zálohování, nástroje třetích stran nabízejí vylepšené funkce, automatizaci a správu na podnikové úrovni pro organizace se složitými požadavky. Tato řešení poskytují pokročilou kompresi, centralizovanou správu a zefektivněné pracovní postupy pro zálohování. SQL Server databáze v různých prostředích.

8.1 Zálohování Veeam pro SQL Server

Veeam nabízí komplexní řešení ochrany dat navržená speciálně pro zálohování SQL Server databáze s minimálním dopadem na produkční systémy.

Klíčové vlastnosti:

  • Zpracování s ohledem na aplikace pro SQL Server konzistence záloh
  • Zálohování a správa transakčních protokolů
  • Obnova v daném okamžiku s možnostmi podrobné obnovy
  • Integrace s Veeam Backup & Replication pro jednotnou ochranu dat
  • Automatické ověřování a validace záloh
  • Podpora skupin dostupnosti Always On
  • Úroveň virtuálního počítače a úroveň aplikace SQL Server možnosti zálohování

8.2 Záloha Barracuda pro SQL Server

Barracuda poskytuje cloudová zálohovací řešení se zjednodušenou správou pro Microsoft Windows. SQL Server operace se zálohováním databáze.

Klíčové vlastnosti:

  • Automatizovaný SQL Server plánování zálohování
  • Vestavěná cloudová replikace do úložiště Barracuda Cloud Storage
  • Globální deduplikace a komprese
  • Možnosti okamžité lokální obnovy
  • Webová konzole pro správu
  • Podpora úplných, rozdílových a transakčních záloh
  • Ochrana před ransomwarem s neměnnými zálohami

8.3 Veritas NetBackup pro SQL Server

Veritas NetBackup je zálohovací platforma podnikové úrovně, která poskytuje komplexní ochranu pro SQL Server databáze napříč komplexními IT prostředími.

Klíčové vlastnosti:

  • Správa záloh v podnikovém měřítku pro tisíce SQL Server instance
  • Pokročilé algoritmy pro deduplikaci a kompresi
  • Flexibilní zásady a plánování zálohování
  • Podpora pro všechny SQL Server modely obnovy
  • Integrace s páskovou knihovnourara cloudové úložiště
  • Granulární obnova databází, tabulek a objektů
  • Podpora více platforem (Windows, Linux) SQL Server)
  • Automatizovaná správa životního cyklu záloh

8.4 Kompletní zálohování a obnova Commvault pro SQL Server

Commvault nabízí inteligentní správu dat s komplexním zálohováním SQL Server možnosti a pokročilé funkce automatizace.

Klíčové vlastnosti:

  • Optimalizace zálohování a detekce anomálií řízená umělou inteligencí
  • Jednotná platforma pro zálohování, obnovu a archivaci
  • pokročilý SQL Server komprese záloh (až o 90 %)
  • Automatizovaná orchestrace obnovy po havárii
  • Live Sync pro téměř nulovou ochranu RPO
  • Podpora SQL Server lokální, cloudová a hybridní nasazení
  • IntelliSnap pro zálohy založené na snapshotech
  • Komplexní funkce pro dodržování předpisů a elektronické zjišťování informací

8.5 Soudržnost DataProtect pro SQL Server

Cohesity poskytuje správu dat nové generace s hyperkonvergovanou infrastrukturou pro moderní SQL Server zálohovací operace.

Klíčové vlastnosti:

  • Webová architektura pro zjednodušenou správu
  • Možnosti okamžité hromadné obnovy pro SQL Server databáze
  • Snímky konzistentní s aplikací
  • Globální deduplikace napříč všemi zálohami
  • Nativní integrace cloudu (AWS, Azure, Google Cloud)
  • Vestavěné analytické a monitorovací dashboardy
  • Možnosti klonování a testování databáze
  • Ochrana před ransomwarem s neměnnými snapshoty

8.6 Red Gate SQL Backup Pro

Red Gate SQL Backup Pro je specializovaný nástroj zaměřený výhradně na optimalizaci SQL Server zálohovací a obnovovací operace s vynikající kompresí a výkonem.

Klíčové vlastnosti:

  • Špičkové kompresní poměry v oboru (až 95 %)
  • Odolnost sítě pro zálohování SQL Server přes nespolehlivá spojení
  • Šifrování záloh s 256bitovým AES
  • Ověření záložní kopie a kontrola integrity
  • Podrobná historie záloh a reporting
  • Integrace s SQL Server Management studio
  • Podpora zálohování do síťových umístění a cloudového úložiště
  • Paralelní zálohování a obnova pro rychlejší operace

9. Jak obnovit SQL Server Databáze

9.1 Pochopení procesu obnovy

Obnovení a SQL Server Databáze znovu vytvoří databázi ze záložních souborů. Proces obnovy přečte záložní soubor a rekonstruuje databázi do zálohovaného stavu.

Důležité úvahy:

  • Obnovení přepíše existující databázi
  • Uživatelé jsou během obnovy odpojeni
  • Obnova musí dodržovat sekvenci záloh (úplná, poté rozdílová a nakonec protokoly)
  • Databáze není během operace obnovení k dispozici.

9.2 Obnovení úplné zálohy pomocí SSMS

Chcete-li obnovit úplnou zálohu databáze, postupujte podle těchto kroků.

9.2.1 Postup obnovy krok za krokem

  1. Otevřená SQL Server Management studio a připojte se k vašemu serveru
  2. In Průzkumník objektů, klikněte pravým tlačítkem myši Databáze
  3. vybrat Obnovit databázi
  4. v Zdroj vyberte část Přístroj
  5. Klepněte na tlačítko ... tlačítko pro procházení záložních souborů
  6. klikněte přidat a přejděte do souboru .bak
  7. Vyberte záložní soubor a klikněte na OK
  8. v Destinace zadejte název databáze
  9. Zkontrolujte zálohy, které chcete obnovit
  10. klikněte OK na start obnovení

9.2.2 Možnosti a nastavení obnovení

klikněte možnosti v levém panelu pro konfiguraci:

  • Přepsat existující databázi (s náhradou) – Umožňuje obnovu přes existující databázi
  • Zachovat stavy replikace (WITH KEEP_REPLICATION) – Udržujte SQL Server replikace stát
  • Omezit přístup k obnovené databázi (WITH RESTRICTED_USER) – Limity post-obnovení přístupu
  • Stav zotavení – Vyberte si mezi možností OBNOVENÍ S REKONSTRUKCÍ nebo BEZ REKONSTRUKCE

9.3 Obnovení rozdílové zálohy

Rozdílová obnova vyžaduje úplné i rozdílové zálohy:

  1. Nejprve obnovte úplnou zálohu pomocí NORECOVERY volba
  2. Pak obnovte rozdílovou zálohu pomocí OBNOVA volba

Příklad T-SQL:

-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO

9.4 Obnovení pomocí záloh protokolu transakcí

Pro obnovení v určitém časovém bodě provádějte obnovu v tomto pořadí:

  1. Obnovte plnou zálohu pomocí NORECOVERY
  2. Obnovení rozdílové zálohy pomocí NORECOVERY (pokud je k dispozici)
  3. Obnovení záloh protokolu transakcí v pořadí pomocí NORECOVERY
  4. Obnovení finální zálohy protokolu pomocí funkce RECOVERY
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO

9.5 Obnova k určitému bodu v čase

Obnovte databázi do určitého časového bodu pomocí volby STOPAT:

-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO

9.6 Obnovení tabulky

SQL Server nepodporuje přímou obnovu na úrovni tabulky ze zálohovaných souborů. Přesto existují určitá řešení.

9.6.1 Metoda 1: Snímky databáze (nejlepší pro prevenci)

Snímky databáze poskytují nejrychlejší způsob obnovení dat tabulky, pokud byly vytvořeny před vznikem problému. Snímek je statický pohled na databázi v určitém časovém okamžiku, který je pouze pro čtení.

Vytvoření snímku databáze:

-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data, 
  FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO

Obnovení dat tabulky ze snímku:

USE ProductionDB;
GO

-- Replace entire table content
BEGIN TRANSACTION;

-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;

-- Clear current data
TRUNCATE TABLE dbo.Orders;

-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;

-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;

COMMIT TRANSACTION;
GO

Požadavky na verzi: Snímky databáze jsou k dispozici v SQL Server Enterprise Edition (všechny verze) a Standard Editiontarting s SQL Server 2016 SP1.

9.6.2 Metoda 2: Obnovení tempararDatabáze y (Most Společný)

Tato metoda funguje, když potřebujete obnovit data tabulky po výskytu problému a neexistuje žádný snímek:

  1. Obnovit zálohu do temparardatabáze y
  2. Zkopírujte data tabulky z temparardatabáze y do aktuální databáze

9.7 Obnovení stránky

Obnova stránek obnovuje jednotlivé poškozené stránky bez nutnosti obnovy celé databáze, čímž minimalizuje prostoje. tarzískávání pouze poškozených stránek. Tato funkce je k dispozici pouze v modelech úplné nebo hromadné obnovy a vyžaduje nepřerušený řetězec záloh protokolu transakcí od zálohy stránky až po aktuální soubor protokolu.

Chcete-li provést obnovu stránky, nejprve identifikujte poškozené stránky, vytvořte zálohu protokolu transakcí, obnovte konkrétní stránky a poté použijte všechny protokoly transakcí:

-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');

-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;

-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;

-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO

Poznámka: Obnovení stránek není k dispozici v rámci modelu jednoduché obnovy. Stránky nelze obnovit ze systémových tabulek ani z metadat primárních skupin souborů.

9.8 Postupná obnova

Částečná obnova obnovuje databázi po etapách na úrovni souborové skupiny, tj.tarování s primární skupinou souborů. Tím se kritická data okamžitě přepnou do online režimu, zatímco méně kritická data se obnovují na pozadí. V modelu jednoduché obnovy musí být všechny skupiny souborů s povolením ke čtení i zápisu obnoveny společně s primární skupinou souborů; samostatně lze obnovit pouze skupiny souborů s povolením ke čtení. V modelech úplné nebo hromadné obnovy lze každou skupinu souborů přepnout do online režimu nezávisle po použití transakčních protokolů.

Model obnovy Chování postupného obnovení
prostý Primární a všechny skupiny souborů pro čtení i zápis byly obnoveny společně. Skupiny souborů pouze pro čtení byly obnoveny samostatně.
Úplné/hromadné protokolování Každá skupina souborů byla obnovena nezávisle na úrovni skupiny souborů.

Příklad modelu úplné obnovy – nejprve obnovte primární skupinu souborů, aby se databáze přepnula do režimu online, a poté obnovte sekundární skupiny souborů, přičemž databáze zůstává funkční:

-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO

-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO

Příklad jednoduchého modelu obnovy:

-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;

-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO

9.9 Obnovení pomocí příkazů T-SQL

Kompletní skript pro obnovení s přemístěním souboru:

RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
     MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
     REPLACE,
     STATS = 10;
GO

9.10 Ověření integrity zálohy před obnovením

Zkontrolujte platnost zálohy bez obnovení:

RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO

Tento příkaz ověří, zda je zálohovaná sada úplná a čitelná, aniž by bylo nutné databázi skutečně obnovit.

10. SQL Server Nejlepší postupy zálohování

10.1 Vypracování strategie zálohování

10.1.1 Posouzení obchodních požadavků

Před implementací záloh vyhodnoťte:

  • Kritičnost dat: Jak důležité jsou tyto údaje pro provoz?
  • Změna frekvence: Jak často se data mění?
  • Velikost databáze: Jak velká je databáze?
  • Dostupné zdroje: Jaké úložiště a šířka pásma jsou k dispozici?
  • Požadavky na dodržování předpisů: Jaké předpisy musíte dodržovat?

10.1.2 Definování RTO a RPO

Cílový čas zotavení (RTO): Maximální přijatelná doba prostoje. Určuje, jak rychle je potřeba obnovit provoz.

Cíl bodu obnovy (RPO): Maximální přijatelná ztráta dat. Určuje frekvenci zálohování.

Požadavek RTO/RPO Doporučená strategie zálohování
RPO: Hodiny, RTO: Hodiny Denní plný + transakční protokol každé 1-2 hodiny
RPO: Minuty, RTO: Hodiny Denní plné zálohy + zálohy protokolů každých 15–30 minut
RPO: Téměř nula, RTO: Minuty Vždy dostupné skupiny dostupnosti + časté zálohy protokolů
RPO: Dny, RTO: Dny Týdenní plný + denní rozdíl

10.2 Vytvoření plánu zálohování

10.2.1 Doporučení ohledně frekvence

Typický plán zálohování produkčních databází:

  • Úplné zálohy: Týdně (v neděli večer během nízké aktivity)
  • Diferenciální zálohy: Denně (každou noc)
  • Zálohy transakčních protokolů: Každých 15–30 minut během pracovní doby
  • Zálohy pouze pro kopírování: Dle potřeby pro testování nebo vývoj

10.2.2 Vyvážení výkonu a ochrany

Při plánování zvažte tyto faktory:

  • Mimo špičku: Spouštět úplné zálohy během období s nízkou aktivitou
  • Dopad na zdroje: Komprese snižuje I/O, ale zvyšuje využití CPU
  • Šířka pásma sítě: Naplánujte zálohování sítě při nízkém provozu
  • Zálohovací okna: Zajistěte dokončení záloh před začátkem pracovní doby

10.3 Nejlepší postupy pro ukládání záloh

10.3.1 Skladování na místě vs. skladování mimo místo

Zálohy na místě:

  • Rychlejší zálohování a obnovení
  • Dolní cost pro vysokofrekvenční přístup
  • Zranitelné vůči lokálním katastrofám
  • Nejlepší pro scénáře rychlé obnovy

Zálohy mimo pracoviště:

  • Ochrana před katastrofami specifickými pro dané místo
  • Dodržování požadavků na geografickou redundanci
  • Pomalejší doby obnovy
  • Nezbytné pro zotavení z havárie

10.3.2 Možnosti zálohování do cloudu

Výhody cloudového úložiště:

  • Azure Blob Storage: Domácí SQL Server integrace, cost-účinné pro nepravidelný přístup
  • Amazon S3: Vysoce odolné a flexibilní úložné patra
  • Google Cloud Storage: Konkurenceschopné ceny, globální dostupnost

10.3.3 Zásady uchovávání záloh

Zásady uchovávání vzorků:

  • Uchovávejte denní zálohy po dobu 7 dnů
  • Uchovávejte týdenní zálohy po dobu 4 týdnů
  • Uchovávejte měsíční zálohy po dobu 12 měsíců
  • Uchovávejte roční zálohy po dobu 7 let (dodržování předpisů)

10.4 Komprese a šifrování záloh

Výhody komprese:

  • Snižuje velikost zálohovaného souboru o 50–70 %
  • Zkracuje dobu zálohování
  • Snižuje úložný prostor costs
  • Snižuje šířku pásma sítě pro vzdálené zálohování

Nejlepší postupy šifrování:

  • Vždy šifrujte zálohy obsahující citlivá data
  • Používejte 256bitové šifrování AES
  • Bezpečná správa certifikátů nebo klíčů
  • Zdokumentujte šifrovací klíče a uložte je odděleně

10.5 Testování a ověřování záloh

10.5.1 Pravidelné testování obnovy

Postupy testování obnovy čtvrtletně nebo měsíčně:

  1. Obnovení záloh do testovacího prostředí
  2. Ověřte integritu a úplnost dat
  3. Zkontrolujte funkčnost aplikace
  4. Čas obnovení dokumentu (ověření RTO)
  5. Identifikujte a vyřešte jakékoli problémy

10.5.2 Použití funkce RESTORE VERIFYONLY

Automatizujte ověřování záloh:

-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Spusťte ověření ihned po dokončení zálohování nebo jako součást plánované údržby.

10.6 Automatizace a monitorování zálohování

10.6.1 SQL Server Práce agentů

Vytvořte automatizované úlohy zálohování:

  1. Rozšířit SQL Server ČinidloExterní odkaz v SSMS
  2. Klepněte pravým tlačítkem myši Zaměstnání a zvolte Nová práce
  3. Pojmenujte úlohu (např. „Denní úplná záloha“)
  4. Přidat Krok s příkazy pro zálohování T-SQL
  5. Vytvořit Naplánovat pro dobu provedení
  6. Konfigurace Oznámení pro úspěch/neúspěch

10.6.2 Plány údržby

SQL Server Plány údržby poskytují vizuální rozhraní pro automatizaci zálohování:

  1. přejděte na management -> Plány údržby
  2. Klepněte pravým tlačítkem myši a vyberte Průvodce plánem údržby
  3. Vyberte úlohy zálohování, které chcete automatizovat
  4. Konfigurace plánu a možností zálohování
  5. Nastavení reportingu a protokolování

10.6.3 Upozornění a oznámení o zálohování

Konfigurace e-mailových oznámení:

  • Nastavení databázové pošty v SQL Server
  • Vytvořit upozornění na selhání zálohování
  • Sledování historie úloh zálohování
  • Odesílání souhrnných zpráv administrátorům

10.7 Dokumentace a plánování obnovy po havárii

Uchovávejte komplexní dokumentaci:

  • Plán zálohování: Kdy a co se zálohuje
  • Zásady uchovávání: Jak dlouho se zálohy uchovávají
  • Místa skladování: Kde se ukládají zálohy
  • Postupy obnovy: Podrobné pokyny k obnově
  • Kontaktní informace: Klíčoví pracovníci a dodavatelé
  • Výsledky testu zotavení: Zdokumentované výsledky testů

11. Moderní SQL Server Záložní scénáře

11.1 Zálohování velmi rozsáhlých databází (VLDB)

11.1.1 Strategie pro soubory a skupiny souborů

Pro databáze přesahující několik stovek gigabajtů:

  • Oddělte data pouze pro čtení a data pro čtení a zápis do různých skupin souborů
  • Nepravidelně zálohujte skupiny souborů určené jen pro čtení
  • Zaměřte se na časté zálohování aktivních skupin souborů
  • Používejte zálohy na úrovni souborů pro detailní kontrolu

Příklad zálohy souboru:

-- Back up specific file
BACKUP DATABASE LargeDB 
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO

11.1.2 Optimalizace výkonu zálohování

Zlepšení výkonu zálohování VLDB:

  • Pruhované zálohy: Zápis do více souborů současně
  • Komprese: Snižte požadavky na I/O a úložiště
  • Více záložních zařízení: Paralelizace zálohovacích operací
  • Rychlé uložení: Použití SSD disků pro zálohování
  • Počet vyrovnávacích pamětí: Možnost Zvýšit BUFFERCOUNT
  • Maximální velikost převodu: Optimalizujte nastavení MAXTRANSFERSIZE
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
   DISK = 'D:\Backups\LargeDB_2.bak',
   DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
     BUFFERCOUNT = 100,
     MAXTRANSFERSIZE = 4194304;
GO

11.2 Zálohování ve skupinách dostupnosti Always On

Skupiny dostupnosti Always On distribuují zátěž záloh mezi repliky:

  • Konfigurace předvoleb zálohování (primární, sekundární nebo libovolná replika)
  • Přesunutí záloh do sekundárních replik pro snížení primární zátěže
  • Používejte zálohy typu COPY_ONLY na sekundárních replikách
  • Nastavení priority zálohování monitoru
-- Check backup preferences
SELECT 
    ag.name AS AvailabilityGroup,
    ar.replica_server_name,
    ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO

11.3 Zálohování pro zrcadlení databáze

V scénářích zrcadlení databáze:

  • Pravidelně zálohujte hlavní databázi
  • Zálohy transakčních protokolů jsou nezbytné pro zrcadlení
  • Zrcadlová databáze je ve stavu OBNOVENÍ (nelze ji zálohovat přímo)
  • Zvažte zálohování zrcadla po failoveru

11.4 Zálohování do úložiště Azure Blob Storage

SQL Server lze zálohovat přímo do úložiště Azure Blob Storage:

  1. Vytvořit účet úložiště Azure
  2. Vytvořit SQL Server přihlašovací údaje pro ověřování Azure
  3. Použijte syntaxi URL pro cíl zálohy
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO

-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
     STATS = 10;
GO

11.5 Zálohování na URL

Výhody zálohování na URL:

  • Neomezená kapacita cloudového úložiště
  • Geografická redundance je automaticky řešena
  • Cenový model s průběžnými platbami
  • Není potřeba žádné místo na místním disku
  • Podporuje až 64 URL adres na zálohu (striping)

11.6 Prokládané zálohy pro zvýšení výkonu

Prokládané zálohy rozdělují data do více souborů pro rychlejší I/O:

-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
   DISK = 'D:\Backups\AW_Stripe2.bak',
   DISK = 'E:\Backups\AW_Stripe3.bak',
   DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO

Poznámka: Pro obnovení jsou vyžadovány všechny soubory Stripe. Chybějící jakýkoli soubor znemožní zálohu.

12. Řešení problémů SQL Server Problémy se zálohováním

12.1 Běžné chyby zálohování a jejich řešení

Chyba: „Chyba operačního systému 5: Přístup odepřen“

  • Způsobit: SQL Server servisní účet postrádá oprávnění
  • Řešení: Udělit oprávnění k zápisu uživateli SQL Server servisní účet ve složce záloh

Chyba: „Nelze otevřít zálohovací zařízení… Chyba zařízení nebo zařízení je offline“

  • Způsobit: Neplatná cesta nebo nedostupná síťová sdílená položka
  • Řešení: Ověřte existenci cesty, zkontrolujte síťové připojení a zajistěte dostatek místa na disku.

Chyba: „Na disku není dostatek místa“

  • Způsobit: Nedostatek místa na disku pro zálohování
  • Řešení: Uvolněte místo na disku, použijte kompresi, zálohujte na jiné místo

Chyba: „Databáze se používá. Databázi používají jiní uživatelé.“

  • Způsobit: Aktivní připojení během obnovy
  • Řešení: Použijte možnost WITH REPLACE nebo nejprve odpojte uživatele

12.2 Problémy s výkonem zálohování

Diagnostika pomalých záloh:

  • Zkontrolujte výkon diskového I/O pomocí Performance Monitor
  • Sledování průběhu zálohování pomocí možnosti STATS
  • přezkoumání SQL Server protokol chyb pro úzká hrdla
  • Zvažte kompresi pro snížení I/O
  • Používejte prokládané zálohy na více discích

Dotaz pro sledování průběhu zálohování:

SELECT 
    session_id,
    command,
    percent_complete,
    CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
    + CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
    + CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
    CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
    + CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
    + CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
    dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests 
WHERE command LIKE 'BACKUP%';
GO

12.3 Problémy s prostorem a úložištěm

Předcházejte problémům s úložištěm:

  • Implementujte zásady uchovávání informací: Automaticky smazat staré zálohy
  • Použijte kompresi: Snižte velikost zálohy o 50–70 %
  • Archivovat do levnějšího úložiště: Přesunutí starých záloh do archivního úložiště
  • Monitorování místa na disku: Nastavení upozornění na nedostatek místa na disku
  • Odhadovaná velikost zálohy: Vypočítejte očekávanou velikost před zálohováním

Odhadovaná velikost zálohy:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Problémy s oprávněními a přístupem

Požadovaná oprávnění pro zálohy:

  • ZÁLOŽNÍ DATABÁZE povolení
  • db_backupoperator členství v roli
  • sysadmin role serveru (pro všechny zálohovací operace)

Udělit oprávnění k zálohování:

-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO

-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO

12.5 Poškozené záložní soubory

Detekce a zpracování poškozených záloh:

Ověřte integritu zálohy:

RESTORE VERIFYONLY 
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Povolit kontrolní součet pro budoucí zálohy:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO

Preventivní strategie:

  • Při zálohování vždy používat možnost CHECKSUM
  • Ověřte zálohy ihned po jejich vytvoření
  • Pravidelně testuje obnovení
  • Ukládejte zálohy na spolehlivé úložiště
  • Udržujte více záložních kopií

12.6 Obnova dat z poškozených záloh

Pokud jsou vaše záložní soubory poškozené a přesto z nich chcete obnovit data, můžete použít nástroje třetích stran, jako například DataNumen SQL Recovery, jak je uvedeno níže:

  1. Start DataNumen SQL Recovery.
  2. Vyberte poškozený záložní soubor jako zdrojový soubor změnou filtru na „Všechny soubory (*.*)“:
    Vyberte poškozený záložní soubor (*.bak) jako zdrojový soubor, který chcete obnovit.
  3. V případě potřeby nastavte výstupní soubor .MDF.
  4. Klikněte na „Star„Obnova“ a postupujte podle pokynů k obnovení databáze.
  5. Po dokončení procesu obnovy se v SQL Server který obsahuje všechna obnovená data.

Použijte  DataNumen SQL Recovery obnovit data z poškozených SQL Server záložní soubor (*.bak).

13. SQL Server Zabezpečení záloh

13.1 Zabezpečení záložních souborů

Chraňte záložní soubory před neoprávněným přístupem:

  • Oprávnění souborového systému: Omezit přístup pouze na oprávněné administrátory
  • Zabezpečení sítě: Používejte zabezpečené protokoly pro síťové zálohy
  • Fyzická bezpečnost: Uchovávejte záložní média na bezpečných místech
  • Protokolování přístupu: Audit přístupu k záložním souborům

13.2 Možnosti šifrování

SQL Server podporuje transparentní šifrování záloh:

Vytvořte certifikát pro šifrování:

-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO

-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO

Šifrovaná záloha:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     );
GO

Důležité: Zálohujte certifikát a soukromý klíč odděleně. Bez nich nelze šifrované zálohy obnovit.

-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
    FILE = 'C:\Certificates\BackupCertificate.key',
    ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO

13.3 Řízení přístupu a oprávnění

Implementujte princip nejnižších privilegií:

  • Udělte oprávnění k zálohování pouze nezbytným účtům
  • Používejte oddělené účty pro zálohování a obnovení
  • Nepoužívejte účet SA pro zálohování
  • Pravidelně auditujte oprávnění k zálohování
  • Odeberte oprávnění, když již nejsou potřeba

13.4 Úvahy o shodě

Řešení regulačních požadavků:

  • GDPR: Šifrování záloh obsahujících osobní údaje, implementace zásad uchovávání dat
  • HIPAA: Šifrování chráněných zdravotních informací v zálohách, kontrola přístupu, uchovávání auditních záznamů
  • PCI DSS: Šifrování záloh dat držitelů karet, bezpečné úložiště záloh
  • SOX: Zachování integrity záloh, zásady uchovávání dokumentů

14. Monitorování a údržba zálohovacích operací

14.1 Sledování historie záloh

SQL Server ukládá historii záloh do databáze msdb:

-- View recent backup history
SELECT 
    bks.database_name,
    bks.backup_start_date,
    bks.backup_finish_date,
    CASE bks.type
        WHEN 'D' THEN 'Full'
        WHEN 'I' THEN 'Differential'
        WHEN 'L' THEN 'Log'
        ELSE 'Other'
    END AS backup_type,
    bks.backup_size / 1024 / 1024 AS backup_size_mb,
    bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO

Najít databáze bez nedávných záloh:

SELECT 
    d.name AS database_name,
    MAX(bs.backup_finish_date) AS last_backup_date,
    DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4  -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
    OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO

14.2 Používání SQL Server zprávy

SQL Server Management Studio obsahuje vestavěné záložní sestavy:

  1. Klikněte pravým tlačítkem myši na databázi v Průzkumníku objektů
  2. vybrat zprávy -> Standardní zprávy
  3. Vyberte si z dostupných reportů:
    • Události zálohování a obnovy
    • Všechny zálohy
    • Stav odeslání protokolu transakcí

14.3 Monitorovací nástroje třetích stran

Řešení pro komerční monitorování:

  • SQL Sentry: Komplexní monitorování a upozorňování
  • Monitor SQL v Redgate: Monitorování a diagnostika v reálném časeostics
  • Analyzátor výkonu databáze SolarWinds: Monitorování výkonu a zálohování
  • Diagnostika SQL v IdeřeostSprávce IC: Ověřování záloh a upozorňování

14.4 Kontroly stavu záloh

Vytvořte postup kontroly stavu:

-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
    -- Check for databases without recent full backup
    SELECT 
        'Missing Recent Full Backup' AS issue,
        d.name AS database_name,
        ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
    FROM sys.databases d
    LEFT JOIN msdb.dbo.backupset bs 
        ON d.name = bs.database_name AND bs.type = 'D'
    WHERE d.database_id > 4
    GROUP BY d.name
    HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
        AND j.name LIKE '%backup%';
END
GO

15. SQL Server Nejčastější dotazy k zálohování

15.1 Jak často bych měl zálohovat SQL Server?

Frekvence zálohování závisí na vašem cíli bodu obnovy (RPO):

  • Kritické produkční databáze: Plný týdenní záznam, rozdílový denní záznam, záznam každých 15–30 minut
  • Standardní produkční databáze: Plný týdenní záznam, rozdílový denní záznam, protokolování každé 1–2 hodiny
  • Vývojové databáze: Plná denní nebo týdenní
  • Databáze pouze pro čtení: Úplné po každé změně dat

15.2 Jaký je rozdíl mezi plnou a rozdílovou zálohou?

Úplná záloha zkopíruje celou databázi, zatímco rozdílová záloha zachycuje pouze změny od poslední úplné zálohy. Rozdílové zálohy jsou menší a rychlejší, ale pro obnovení vyžadují základní úplnou zálohu.

15.3 Mohu zálohovat SQL Server Zatímco to běží?

Ano, SQL Server podporuje online zálohování. Uživatelé mohou během zálohování pokračovat v práci. SQL Server používá svůj transakční protokol k udržení konzistence a zajišťuje platnost záloh i při souběžných úpravách.

15.4 Jak dlouho trvá SQL Server Záložní záběr?

Doba trvání zálohování se liší v závislosti na:

  • Velikost databáze: Větší databáze trvají déle
  • Typ zálohy: Úplné zálohy trvají nejdéle
  • Komprese: Může zvýšit čas CPU, ale zkrátit celkovou dobu trvání
  • Rychlost ukládání: SSD disky výrazně rychlejší než HDD disky
  • Zatížení serveru: Vyšší aktivita zpomaluje zálohování

Typické rozsahy: Úplná záloha databáze o velikosti 10 GB s kompresí na moderním hardwaru může trvat 5–15 minut.

15.5 Kde mám skladovat SQL Server zálohy?

Nejlepší postup: Dodržujte pravidlo 3-2-1:

  • 3 kopie vašich údajů
  • 2 různé typy úložišť (např. disk a páska/cloud)
  • 1 kopírovat mimo web

Doporučená místa:

  • Lokální disk pro rychlé obnovení
  • Síťové úložiště pro centralizovanou správu
  • Cloudové úložiště (Azure, AWS) pro zotavení po havárii

15.6 Co je přípona souboru .bak?

Přípona .bak je výchozí přípona souboru pro SQL Server záložní soubory. Je to konvence, nikoli požadavek – SQL Server Zálohy fungují s jakoukoli příponou souboru. Použití přípony .bak však usnadňuje identifikaci záložních souborů a je standardní praxí v oboru.

15.7 Jak zálohovat SQL Server na síťový disk?

Zálohování na síťový disk:

  1. Zajistit SQL Server servisní účet má oprávnění k zápisu do sdílené síťové složky.
  2. Použijte cestu UNC v příkazu pro zálohování: \\ServerName\ShareName\BackupFile.bak
  3. Před naplánováním automatických záloh otestujte připojení
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Mohu komprimovat SQL Server zálohy?

Ano, SQL Server podporuje nativní kompresi záloh (Enterprise Edition nebo Standard Edition)tarting SQL Server 2016 SP1). Komprese obvykle snižuje velikost zálohy o 50–70 % a často zkracuje dobu zálohování snížením I/O operací, i když zvyšuje využití CPU.

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO

16. závěr

16.1 klíčové poznatky

Efektivní SQL Server Strategie zálohování chrání vaše data a zajišťují kontinuitu podnikání. Nezapomeňte na tyto základní body:

  • Pochopte typy záloh: Vyberte vhodné typy záloh (úplné, rozdílové, transakční protokol) na základě vašich požadavků na obnovu
  • Vyberte vhodný model obnovy: Úplná obnova kritických dat, jednoduchá pro vývojové databáze
  • Implementace plánu zálohování: Pravidelné úplné zálohy v kombinaci s rozdílovými zálohami a zálohami protokolů minimalizují ztrátu dat.
  • Postupy obnovy testů: Zálohy jsou cenné pouze tehdy, pokud je lze úspěšně obnovit.
  • Automatizujte a monitorujte: Použijte SQL Server Agent, plány údržby a monitorovací nástroje
  • Bezpečné zálohy: Šifrujte citlivá data a ovládejte přístup k záložním souborům
  • Ukládání kopií mimo pracoviště: Chraňte se před katastrofami na úrovni celého webu pomocí cloudového nebo vzdáleného úložiště
  • Vše zdokumentujte: Udržujte jasnou dokumentaci postupů zálohování a obnovy

16.2 Další kroky a zdroje

Chcete-li zlepšit své SQL Server implementace zálohování:

  • Porovnejte svou aktuální strategii zálohování s osvědčenými postupy
  • Vypočítejte si požadavky na RTO a RPO
  • Testování postupů obnovy na neprodukčních systémech
  • Pravidelně kontrolujte a aktualizujte plány zálohování
  • Implementujte automatizované monitorování a upozorňování
  • Školení členů týmu v postupech obnovy

Dodatečné zdroje:

  • Microsoft SQL Server Dokumentace: Oficiální pokyny pro zálohování a obnovu
  • SQL Server Fóra komunity zálohování: Sdílejte zkušenosti a řešení
  • Profesní certifikace: Certifikace společnosti Microsoft: Azure Database Administrator Associate

16.3 Doporučené nástroje a řešení

Na základě různých scénářů:

Malý obchod:

  • Domácí SQL Server zálohování s plánovaným SQL Server Pracovní místa agentů
  • SQLBackupAndFTP pro cloudovou integraci
  • Azure Backup pro SQL Server

Střední podniky:

  • SQL Server Plány údržby
  • Nástroje třetích stran, jako je Redgate SQL Backup Pro
  • Zálohování Veeam pro SQL Server

Velké podniky:

  • Quest LiteSpeed ​​pro maximální kompresi
  • Commvault nebo Veritas NetBackup pro správu záloh v podniku
  • Skupiny dostupnosti Always On pro vysoká dostupnost

SQL Server Zálohování je základem správy databází. Správným plánováním, implementací a testováním můžete zajistit, aby vaše data zůstala chráněna a obnovitelná v případě potřeby.tarimplementace těchto osvědčených postupů dnes k zajištění vaší SQL Server databází.


O autorovi

Yuan Sheng je seniorní správce databází (DBA) s více než 10 lety zkušeností v SQL Server prostředí a správu podnikových databází. Úspěšně vyřešil stovky scénářů obnovy databází ve finančních službách, zdravotnictví a výrobních organizacích.

Yuan se specializuje na SQL Server obnova databází, řešení pro vysokou dostupnost a optimalizace výkonu. Jeho rozsáhlé praktické zkušenosti zahrnují správu databází o velikosti více terabajtů, implementaci skupin dostupnosti Always On a vývoj automatizovaných strategií zálohování a obnovy pro kritické podnikové systémy.

Díky svým technickým znalostem a praktickému přístupu se Yuan zaměřuje na vytváření komplexních průvodců, které pomáhají správcům databází a IT profesionálům řešit složité SQL Server efektivně zvládá výzvy. Udržuje si přehled o nejnovějších SQL Server vydání a vyvíjející se databázové technologie společnosti Microsoft a pravidelně testuje scénáře obnovy, aby zajistil, že jeho doporučení odrážejí osvědčené postupy z reálného světa.

Máte otázky ohledně SQL Server potřebujete další pokyny k odstraňování problémů s databází? Yuan vítá zpětnou vazbu a návrhy pro vylepšení těchto technických zdrojů.

Sdílej nyní: