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
SETLOCALREM 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 - %% CREM 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.