SQL Server poskytuje snadný způsob, jak vytvořit zálohu databáze. Zálohování lze provádět buď pomocí Transact-SQL, PowerShell, nebo prostřednictvím GUI.
Zde ukážu, jak vytvořit zálohu pomocí GUI SQL Operations Studio (nyní nazývaného Azure Data Studio), poté pomocí Transact-SQL a nakonec pomocí SQL Server Powershell.
Vytvořte zálohu prostřednictvím GUI SQLOPS/Azure Data Studio
-
Otevřete řídicí panel databáze
V levém podokně klikněte pravým tlačítkem na databázi, kterou chcete zálohovat, a vyberte Spravovat .
Pokud používáte SSMS, v Průzkumníku objektů klikněte pravým tlačítkem na databázi, kterou chcete zálohovat, a vyberte Úkoly> Zálohovat... z kontextové nabídky. Tím se spustí Zálohovací databáze dialogové okno.
-
Spusťte Záložní databázi Dialogové okno
Klikněte na Záloha knoflík.
-
Zkontrolujte nastavení
Toto dialogové okno vám dává možnost v případě potřeby změnit jakékoli nastavení.
Pro náš příklad ponechte výchozí nastavení a klikněte na Zálohovat pro vytvoření zálohy.
Pokud máte specifické požadavky na zálohování, můžete změnit typ zálohy a/nebo kliknout na Pokročilá konfigurace upravte pokročilá nastavení konfigurace.
-
Zálohování dokončeno
Po dokončení zálohování se zobrazí zpráva potvrzující, že zálohování proběhlo úspěšně.
Zálohování databáze pomocí Transact-SQL
Stejné zálohování jako výše můžete provést pomocí T-SQL.
Chcete-li to provést, otevřete nové okno dotazu a spusťte BACKUP
prohlášení.
BACKUP
příkaz přijímá různé možnosti (stejně jako možnost GUI), ale můžete také spustit jednoduchou zálohu s minimem kódu.
Níže je uveden příklad jednoduchého zálohovacího skriptu v systému Linux nebo Mac. Skript specifikuje databázi k zálohování a umístění, kam se má zálohovat.
BACKUP DATABASE Music TO DISK = '/var/opt/mssql/data/Music.bak';
V systému Windows bude cesta používat zpětná lomítka:
BACKUP DATABASE Music TO DISK = 'C:\Backups\Music.bak';
Po spuštění tohoto kódu bude záložní soubor umístěn v určeném umístění.
Zálohujte databázi pomocí prostředí PowerShell
SQL Server 2017 podporuje Windows PowerShell, což je skriptovací prostředí, které se obvykle používá k automatizaci úloh správy a nasazení.
Jazyk PowerShell podporuje složitější logiku než skripty Transact-SQL, což vám dává možnost vytvářet sofistikovanější skripty pro zálohování a další úkoly.
Následující kód vytvoří zálohu stejně jako předchozí příklady. Stačí nahradit MyServer
s názvem vašeho serveru.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
Můžete také určit umístění
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'
Po spuštění tohoto kódu bude záložní soubor umístěn ve výchozím umístění.
Můžete také zadat -BackupAction Database
výslovně uvést, že se jedná o plnou zálohu. Toto je však výchozí možnost.
Můžete si prohlédnout úplnou dokumentaci Backup-SqlDatabase
příkaz na webu společnosti Microsoft.
Přepsání záložních souborů
Pokud provádíte více záloh pomocí stejného názvu souboru zálohy, můžete si všimnout, že při každém spuštění zálohy se velikost souboru zálohy zvětší.
Je to proto, že každá následující záloha se sama přidává do existujícího souboru. Dělá to proto, že používáte stejný název souboru a výslovně jste nestanovili, že každá záloha má přepsat jakýkoli existující soubor.
Existuje možnost, která vám umožní přepsat existující soubor.
- Pomocí GUI SQLOPS , klikněte na Pokročilá konfigurace a pod Zálohovat do existující sady médií , vyberte Přepsat všechny existující sady záloh .
- Pomocí GUI SSMS , klikněte na Možnosti médií v levé nabídce Zálohování databáze dialogové okno a vyberte Přepsat všechny existující sady záloh v Přepsat média sekce.
- Pomocí SQL přidat
WITH INIT
na příkaz SQL. - Pomocí Powershell , přidejte
-Initialize
k příkazu.
Používání jedinečných názvů souborů
Často je však dobré vytvořit úplnou zálohu s jedinečným názvem souboru (obvykle včetně data v názvu souboru). Jedinečný název souboru znamená, že každá záloha bude samostatný soubor.
V závislosti na velikosti vaší databáze a na tom, kolik nových dat se do ní zadává, možná budete chtít doplnit své plné zálohy rozdílovými zálohami. Rozdílová záloha zachycuje pouze data, která se změnila od poslední plné zálohy.