Domovská » jak » Dávkový skript pro zálohování všech databází serveru SQL Server

    Dávkový skript pro zálohování všech databází serveru SQL Server

    Už jsme se zabývali zálohováním databáze SQL Server z příkazového řádku, takže co když chcete zálohovat všechny vaše databáze najednou? Můžete vytvořit dávkový skript, který spouští příkaz pro každou databázi, ale tento skript bude muset být aktualizován při každém přidání nebo odebrání databáze. Kromě toho budou zálohy databáze připojeny k jednomu souboru, který bude při každé spuštění růstu podle velikosti nové zálohy. Místo toho ve skutečné "nastavit a zapomenout na to" módu, vytvoříme dávkový skript, který se přizpůsobí vašemu SQL Serveru, když budou přidány a odstraněny nové databáze.

    Chcete-li se dostat rovnou do bodu, je to zálohovací skript:

    @ OFF OFF
    SETLOCAL

    REM Získejte datum ve formátu YYYY-MM-DD (předpokládá se, že národní prostředí je Spojené státy)
    FOR / F "žetony = 1,2,3,4 delims = /" %% A IN ('Datum / T') DO SET NowDate = %% D - %% B - %% C

    REM Vytvořte seznam databází pro zálohování
    SET DBList =% SystemDrive% SQLDBList.txt
    SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON; SELECT název FROM master.dbo.sysDatabáze WHERE [Name] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList% "

    REM Zálohujte každou databázi a předdejte datum názvu souboru
    FOR / F "žetony = *" %% I IN (% DBList%) DO (
    ECHO Zálohování databáze: %% I
    SqlCmd -E -S MyServer -Q "ZÁLOŽNÍ DATABÁZE [%% I] DO Disk =" D: Záloha% NowDate% _ %% I.bak ""
    ECHO.
    ).

    REM Vyčistěte soubor temp
    POKUD EXISTUJE "% DBList%" DEL / F / Q "% DBList%"

    ENDLOCAL

    Za předpokladu, že datum je 13.1.2009 a máte 3 databáze s názvem "MyDB", "AnotherDB" a "DB Name with Spaces", vytvoří skript ve specifikovaném zálohovém souboru 3 soubory:

    • 2009-01-13_AnotherDB.bak
    • 2009-01-13_DB Název s Spaces.bak
    • 2009-01-13_MyDB.bak

    Přizpůsobení a spuštění dávkového skriptu

    Samozřejmě, budete chtít přizpůsobit skript vašemu prostředí, takže zde je to, co musíte udělat:

    • Není-li místní prostředí vašeho počítače nastaveno na USA, příkaz "Date / T" nemusí vrátit datum ve formátu "Tue 01/13/2009". V takovém případě nebude proměnná NowDate produkovat požadovaný formát a měla by být nastavena. (1 místo)
    • Změňte 'MyServer' jako jméno serveru SQL Server (přidejte případný název instance). (2 místa)
    • Databáze s názvem "master", "model", "msdb" a "tempdb" jsou databáze, které jsou dodávány se serverem SQL Server. Do seznamu můžete přidat další názvy databáze, pokud nechcete, aby byly zálohovány. (1 místo)
    • Změňte umístění zálohování z "D: Backup" na místo, kde chcete uložit uložené záložní soubory databáze.

    Jakmile upravíte dávkový skript, naplánujte jej spouštění pomocí programu Plánovač úloh systému Windows jako uživatel s právy správce a vy jste vše nastaveny.