Već smo pokrivali kako sigurnosno kopirati SQL Server bazu podataka iz naredbenog retka, pa što ako želite backup svih vaših baza podataka odjednom? Možete stvoriti skupnu skriptu koja pokreće pričuvnu naredbu za svaku bazu podataka, ali ta će se skripta morati ažurirati svaki put kada se doda ili ukloni baza podataka. Osim toga, sigurnosne kopije baze podataka bit će priložene jednoj datoteci koja će se povećati po veličini nove sigurnosne kopije svaki put kad se pokrene. Umjesto toga, u stvarnom "postavite ga i zaboravite" modu, izradit ćemo skupnu skriptu koja će se prilagoditi vašem sustavu SQL Server, budući da su nove baze podataka dodane i uklonjene.
Da biste dobili pravo na točku, ovo je rezervna skripta:
@Heko isključeno
SETLOCALREM Dohvatite datum u obliku YYYY-MM-DD (pretpostavlja da je lokalna jedinica Sjedinjene Države)
FOR / F "oznake = 1,2,3,4 delims = /" %% A IN ('Datum / T') DO SET NowDate = %% D - %% B - %% CREM Izradite popis baza podataka za backup
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON; SELECT Naziv FROM master.dbo.sysDatabases GDJE [Name] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList% "REM Sigurnosno kopiranje svake baze podataka, prije datuma do naziva datoteke
FOR / F "znakova = *" %% I IN (% DBList%) DO (
ECHO Sigurnosna kopija baze podataka: %% I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [%% I] na Disk =" D: Sigurnosna kopija% NowDate% _ %% I.bak ""
JEKA.
)REM Očistite datoteku temp
Ako postoji "% 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 naziv s prostorima", skripta će proizvesti 3 datoteke na mjestu rezervnog mjesta:
Naravno, htjet ćete prilagoditi skriptu u svojoj okolini pa evo što trebate učiniti:
Nakon što prilagodite skriptu serije, zakažite ga da se pokrene putem programa Windows Task Scheduler kao korisnika s pravima administratora i sve ste postavljeni.