Vytvořte diferenciální databázovou zálohu (SQL Server)

platí pro:SQL Server

Tento článek popisuje, jak vytvořit diferenciální databázovou zálohu v SQL Server pomocí SQL Server Management Studio, Transact-SQL nebo PowerShell.

Přehled konceptů a úkolů zálohování najdete v přehledu zálohování (SQL Server).

Požadavky

Diferenciální záloha databáze vyžaduje předchozí kompletní zálohu databáze. Pokud databáze žádnou nemá, udělejte si nejdřív kompletní zálohu databáze. Další informace naleznete v tématu Vytvoření úplné zálohy databáze.

Doporučení

Protože diferenciální zálohy se v průběhu času zvětšují, obnova diferenciální zálohy může výrazně prodloužit dobu obnovení databáze. Dělejte novou plnou zálohu v nastavených intervalech, abyste vytvořili novou diferenciální základnu.

Například můžete dělat týdenní kompletní zálohu databáze, následovanou denními diferenciálními zálohami během týdne.

Limitations

Nemůžete použít BACKUP toto tvrzení v explicitní ani implicitní transakci.

Povolení

BACKUP DATABASE a BACKUP LOG oprávnění jsou výchozí pro členy role pevného správce systému a pro pevné databázové role db_owner a db_backupoperator .

Účet služby SQL Server musí mít oprávnění ke čtení a zápisu fyzického souboru záložního zařízení. Problémy s vlastnictvím nebo oprávněními k tomuto souboru brání zálohovacím a obnovovacím operacím a objevují se pouze při spuštění zálohy nebo obnovy.

Například procedura sp_addumpdevice systémově uložené, která přidává záznam záložního zařízení do systémových tabulek, nevaliduje přístup k souboru.

Použití aplikace SQL Server Management Studio

  1. V Průzkumník objektů se připojte k Database Engine a poté rozbalte serverový strom.

  2. Rozbalte databáze a poté vyberte uživatelskou databázi. Nebo rozbalte systémové databáze a vyberte systémovou databázi.

  3. Klikněte pravým tlačítkem na databázi, přejděte na Úkolya vyberte Zálohovat. Zobrazí se dialogové okno Zálohovat databázi.

  4. V rozbalovacím seznamu databáze ověřte název databáze. Volitelně vyberte jinou databázi.

    Diferenciální zálohu můžete provést s jakýmkoli modelem obnovy (plným, hromadně logovaným nebo jednoduchým).

  5. V rozbalovacím seznamu typů záloh vyberte Diferenciální.

    Důležitý

    Když vyberete Diferenciální, ujistěte se, že políčko Záloha pouze pro kopírování není zaškrtnuté. Na úplné záloze typu copy-only nelze vytvořit diferenciální zálohu. Další informace viz Pouze kopie záloh.

  6. Pro komponentu Záloha vyberte Databáze.

  7. V textovém poli Název přijměte výchozí název zálohovací sady nebo zadejte nový.

  8. Volitelně zadejte popis do textového pole Popis .

  9. Specifikujte, kdy záložní sada vyprší:

    • Pro vypršení zálohovací sady po určitém počtu dní vyberte po (výchozí) a zadejte počet dní. Hodnoty se pohybují od 0 do .99999 Hodnota 0 znamená, že sada záloh nikdy nevyprší.

      Výchozí hodnota je nastavena v možnosti Výchozí záloha uchování médií (v dnech) na stránce Nastavení databáze v dialogovém okně Vlastnosti serveru . Pro otevření klikněte pravým tlačítkem na název serveru v Průzkumník objektů, vyberte Vlastnosti a poté vyberte stránku Nastavení databáze.

    • Pro vypršení záložní sady na konkrétní datum vyberte Zapnuto a zadejte datum.

  10. Pro cíl zálohy vyberte Disk nebo URL. Pro přidání až 64 diskových jednotek pro jednu sadu médií vyberte Přidat. Vybrané cesty se zobrazí v rozevíracím seznamu Záloha do.

    Chcete-li odebrat cíl zálohování, vyberte ho a klikněte na Odebrat. Pokud chcete zobrazit obsah cíle zálohování, vyberte ho a vyberte Obsah.

    Poznámka

    Další informace o zálohování na adresu URL najdete v článku Zálohování SQL Serveru na adresu URL pro Azure Blob Storage.

  11. Pokud chcete zobrazit nebo vybrat pokročilé možnosti, vyberte Možnosti v panelu Vyberte stránku.

  12. Pro Overwrite Media vyberte jednu z následujících možností:

    • Zálohovat do existující sady médií

      Vyberte buď Připojit k existující záložní sadě , nebo Přepsat všechny existující zálohovací sady. Volitelně zaškrtněte políčko Zkontrolovat název sady médií a vypršení platnosti zálohovací sady a do textového pole Název sady médií zadejte název.

      Pokud nespecifikujete název, SQL Server vytvoří mediální sadu s prázdným názvem. Pokud zadáte název, SQL Server ověří médium, aby potvrdil, že se název shoduje.

      Pokud necháte jméno média prázdné a zaškrtnete políčko, zaškrtnutí uspěje pouze tehdy, pokud je jméno na médiu také prázdné.

    • Zálohování do nové sady médií a vymazání všech existujících sad záloh

      Zadejte jméno do textového pole pro název nové mediální sady . Volitelně popište množinu médií v textovém poli popisu nové mediální sady .

  13. V sekci Spolehlivost volitelně vybrat:

  14. SQL Server podporuje kompresi záloh. Ve výchozím nastavení SQL Server komprimuje zálohy podle volby konfigurace serveru backup-compression default. Bez ohledu na výchozí nastavení na úrovni serveru vyberte Kompresovat zálohu pro kompresi zálohy, nebo zvolit Nekomprimovat zálohu , abyste zabránili kompresi.

    Pokud chcete zobrazit aktuální výchozí kompresi záloh, přečtěte si téma Konfigurace serveru: výchozí komprese zálohování. Pro více informací o kompresi záloh viz Komprese záloh (SQL Server).

Remarks

  • Můžete použít Průvodce údržbovým plánem k vytvoření diferenciálních záloh databází.

  • Možnosti sekce Transakčního logu jsou neaktivní, pokud nezálohujete transakční log. Tuto možnost zadejte v sekci Typ zálohy na stránce Obecné .

Použijte Transact-SQL

Proveďte BACKUP DATABASE příkaz pro vytvoření diferenciální databázové zálohy. Specifikovat:

  • Název databáze, která se má zálohovat.

  • Zálohovací zařízení, kde se zapisuje úplné zálohování databáze.

  • Klauzule DIFFERENTIAL zálohovat pouze části databáze, které se změnily po poslední kompletní záloze databáze.

Použijte tuto syntaxi:

BACKUP DATABASE database_nameTO< backup_device>WITH DIFFERENTIAL

Příklad (Transact-SQL)

Ukázky kódu v tomto článku používají ukázkovou databázi nebo AdventureWorksDW2025, kterou si můžete stáhnout z repozitáře GitHub AdventureWorks2025.

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

Remarks

Pro informace o zálohování na pásku viz BACKUP možnosti pásky a příklad zařízení zálohování na pásku v sekci Vytvořit plnou databázovou zálohu.

Poznámka

Možnost TAPE bude odebrána v budoucí verzi SQL Server. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Použijte PowerShell

Použijte cmdlet Backup-SqlDatabase. Pro specifikaci diferenciální databázové zálohy použijte -Incremental parametr spolu s .-BackupAction Database

Poznámka

Tento příklad vyžaduje modul SqlServer. Další informace naleznete u poskytovatele PowerShellu SQL Serveru .

Příklad (PowerShell)

Následující příklad vytváří diferenciální databázovou zálohu databáze AdventureWorks2025 na výchozí místo zálohy serverové instance Computer\Instance. Kompletní databázová záloha musí již existovat.

Úplné příklady syntaxe najdete v tématu Backup-SqlDatabase.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential