Úvodná » ako » Dávkový skript na zálohovanie všetkých vašich databáz SQL Server

    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
    SETLOCAL

    REM 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 - %% C

    REM 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í.