Batch skripta za Backup sve vaše SQL Server baze podataka
Već smo pokrili kako izraditi sigurnosnu kopiju baze podataka SQL Servera iz naredbenog retka, pa što ako želite backup svih vaših baza podataka odjednom? Možete stvoriti batch skriptu koja pokreće naredbu backupa za svaku bazu podataka, ali ovu skriptu treba ažurirati svaki put kada se doda ili ukloni baza podataka. Osim toga, sigurnosne kopije baze podataka bit će dodane jednoj datoteci koja će rasti svaki put kad se pokrene. Umjesto toga, u pravom modu "namjestimo ga i zaboravi", izradit ćemo batch skriptu koja će se prilagoditi vašem SQL poslužitelju kada se dodaju i uklone nove baze podataka..
Da biste došli do točke, ovo je skripta sigurnosne kopije:
@ECHO OFF
SETLOCALREM Dobivanje datuma u formatu YYYY-MM-DD (pretpostavlja se da je oznaka zemlje SAD-a)
FOR / F “tokeni = 1,2,3,4 delims = /” %% A IN ('Date / T') NE SET DANE = %% D - %% B - %% CREM Izradite popis baza podataka za izradu sigurnosnih kopija
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Ime IZ master.dbo.sysDatabases WHERE [Naziv] NE IN ('master', 'model', 'msdb', 'tempdb') ”>“% DBList% ”REM Rezervirajte svaku bazu podataka, pripremajući datum na naziv datoteke
FOR / F "tokeni = *" %% I IN (% DBList%) DO (
ECHO Baza podataka sigurnosne kopije: %% I
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%% I] TO Disk =" D: Sigurnosna kopija% NowDate% _ %% I.bak "
JEKA.
)REM Očistite privremenu datoteku
IF EXIST “% DBList%” DEL / F / Q “% DBList%”ENDLOCAL
Pod pretpostavkom da je datum 1/13/2009 i imate 3 baze podataka pod nazivom 'MyDB', 'AnotherDB' i 'DB Name with Spaces', skripta će proizvesti 3 datoteke na navedenoj lokaciji za sigurnosno kopiranje:
- 2009-01-13_AnotherDB.bak
- 2009-01-13_DB Ime sa Spaces.bak
- 2009-01-13_MyDB.bak
Prilagodba i pokretanje skripta za skupove
Naravno, želite prilagoditi skriptu vašem okruženju, pa evo što trebate učiniti:
- Ako lokalizacija vašeg uređaja nije postavljena na SAD, naredba 'Datum / T' možda neće vratiti datum u formatu “uto 01/13/2009”. Ako je to slučaj, varijabla NowDate neće proizvesti željeni format i trebala bi biti podešena. (1 mjesto)
- Promijenite "MyServer" kao naziv vašeg SQL poslužitelja (dodajte ime instance ako je primjenjivo). (2 mjesta)
- Baze podataka pod nazivom 'master', 'model', 'msdb' i 'tempdb' su baze podataka koje se isporučuju s SQL Serverom. Možete dodati dodatna imena baze podataka na ovaj popis ako ne želite da se sigurnosno kopiraju. (1 mjesto)
- Promijenite lokaciju sigurnosne kopije s "D: Backup" na mjesto gdje želite pohraniti datoteke sigurnosne kopije baze podataka.
Nakon što ste prilagodili skriptu paketa, rasporedite je da se pokreće putem Windows Planera zadataka kao korisnik s administratorskim pravima i svi ste postavljeni.