06.04.2022, Vladimír Klaus, navštíveno 1104x

SQL
SQL Server

Zálohování SQL Server databáze má mnoho aspektů a byla k tomu napsána spousta knih. Jako třeba tato úžasná 380stránková příručka "SQL Server Backup and Restore". Co ale zřejmě naštve každého začínajícího uživatele bývá skutečnost, že každé spuštění zálohování zdvojnásobí velikost zálohy. Je to výchozí nastavení a znamená to, že každá záloha se přidává do tzv. sady uvnitř BAK souboru.

Pár poznámek k zálohování SQL Server databáze, obr. 2

Zálohování přes SSMS pomocí dialogu

Když provedete klasické zálohování kliknutím pravým tlačítkem na databázi a pak Tasks > Back Up... tak se to chová, jak bylo uvedeno výše.

Stačí se ale přepnout na kartu Media Options a tam změnit nastavení "Overwrite media". Ještě je třeba dát pozor na to, že uvedené nastavení se nepamatuje - ani pro aktuální databázi, ani pro SSMS!

Pár poznámek k zálohování SQL Server databáze, obr. 2

Zálohování přes SSMS pomocí SQL příkazu

Velmi jednoduchý příkaz zazálohuje uvedenou databázi do cílového souboru a pokud se i zde chcete vyhnout zdvojnásobování velikosti, musíte použít "WITH INIT".

BACKUP DATABASE MojeDatabaze TO DISK=c:\Zaloha\MojeDatabaze.bak WITH INIT

V dávkovém souboru pomocí SQLCMD

SQLCMD je řádková utilita pomocí které předáme pár parametrů (pozor, záleží na velikosti písmen) a SQL příkaz, který má vykonat.

SQLCMD -E -S (local) -Q "BACKUP DATABASE MojeDatabaze TO DISK='c:\Zaloha\MojeDatabaze.bak' WITH INIT"

Význam jednotlivých parametrů:

  • -E – použije se důvěryhodné připojení (není třeba zadávat jméno a heslo)
  • -S – jakého serveru se to týká
  • -Q – provede se příkaz a vše se ukončí

Zdroje: