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

Obsah:

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

Video: Dávkový skript na zálohovanie všetkých vašich databáz SQL Server

Video: Dávkový skript na zálohovanie všetkých vašich databáz SQL Server
Video: Программа антивирус Microsoft Security Essentials. Программа защиты от вирусов - YouTube 2024, November
Anonim

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. Zálohovanie databázy bude navyše 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 "nastaviť a zabudnúť" módu, vytvoríme dávkový skript, ktorý sa prispôsobí vášmu serveru SQL, keď sa pridajú a odstránia nové databázy.

Ak sa chcete dostať rovno do bodu, ide o záložný skript:

@ECHO OFF SETLOCAL

REM Get date in format YYYY-MM-DD (assumes the locale is the United States) FOR /F “tokens=1,2,3,4 delims=/” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C

REM Build a list of databases to backup SET DBList=%SystemDrive%SQLDBList.txt SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’)” > “%DBList%”

REM Backup each database, prepending the date to the filename FOR /F “tokens=*” %%I IN (%DBList%) DO ( ECHO Backing up database: %%I SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%%I] TO Disk=’D:Backup%NowDate%_%%I.bak'” ECHO. )

REM Clean up the temp file IF EXIST “%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í v 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álohovania z "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 všetci ste nastavili.

Odporúča: