Dávkový skript na zálohovanie všetkých vašich databáz SQL Server
Už sme pokryli, ako zálohovať databázu SQL Server z príkazového riadku, čo ak chcete zálohovať všetky vaše databázy naraz? Môžete vytvoriť dávkový skript, ktorý spustí príkaz na zálohovanie pre každú databázu, ale tento skript by sa musel aktualizovať pri každom pridaní alebo odstránení databázy. Okrem toho budú zálohy databázy pripojené k jednému súboru, ktorý bude rásť podľa veľkosti novej zálohy pri každom spustení. Namiesto toho v skutočnej móde "nastaviť a zabudnúť" vytvoríme dávkový skript, ktorý sa prispôsobí vášmu serveru SQL Server, keď sa pridajú a odstránia nové databázy.
Ak sa chcete dostať rovno do bodu, je to zálohovací skript:
@ OFF OFF
SETLOCALREM Získajte dátum vo formáte YYYY-MM-DD (predpokladá sa, že miestne je Spojené štáty)
FOR / F "žetóny = 1,2,3,4 delims = /" %% A IN ('Date / T') DO SET NowDate = %% D - %% B - %% CREM Vytvorte zoznam databáz na zálohovanie
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON; SELECT Name FROM master.dbo.sysDatabázy KDE [Name] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList%REM Zálohovať každú databázu, prefixovať dátum na názov súboru
FOR / F "žetóny = *" %% I IN (% DBList%) DO (
ECHO Zálohovanie databázy: %% I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [%% I] Na disk =" D: Záloha% NowDate% _ %% I.bak ""
ECHO.
)REM Vyčistite súbor temp
AK EXISTUJE "% DBList%" DEL / F / Q "% DBList%"ENDLOCAL
Za predpokladu, že dátum je 13.1.2009 a máte 3 databázy s názvom "MyDB", "OtherDB" a "DB Name with Spaces", skript vytvorí na zadanom mieste zálohovania 3 súbory:
- 2009-01-13_AnotherDB.bak
- 2009-01-13_DB Názov s Spaces.bak
- 2009-01-13_MyDB.bak
Prispôsobenie a spustenie dávkového skriptu
Samozrejme, budete chcieť prispôsobiť skript vášmu prostrediu, takže tu je to, čo musíte urobiť:
- Ak národné nastavenie vášho zariadenia nie je nastavené na USA, príkaz "Date / T" nemôže vrátiť dátum vo formáte "Tue 01/13/2009". Ak je to tak, premenná NowDate nevytvorí požadovaný formát a mala by byť upravená. (1 miesto)
- Zmeňte "MyServer" na názov vášho servera SQL Server (ak je to potrebné, pridajte názov inštancie). (2 miest)
- Databázy s názvom "master", "model", "msdb" a "tempdb" sú databázy, ktoré sa dodávajú so serverom SQL Server. Ak nechcete, aby boli zálohované, môžete do tohto zoznamu pridať ďalšie názvy databáz. (1 miesto)
- Zmeňte umiestnenie zálohy z miesta "D: Backup" na miesto, kde chcete uložiť záložné súbory databázy.
Po prispôsobení dávkového skriptu naplánujte jeho spustenie cez Plánovač úloh systému Windows ako používateľ s právami správcu a ste všetci nastavení.