/ / Batch skripta za sigurnosno kopiranje svih vaših SQL Server baza podataka

Batch skripta za sigurnosno kopiranje svih vaših SQL Server baza podataka

Već smo opisali kako sigurnosno kopirati SQLServer baze podataka iz naredbenog retka, pa što ako želite sigurnosno kopirati sve svoje baze podataka odjednom? Možete stvoriti paketnu skriptu koja izvodi naredbu sigurnosnog kopiranja za svaku bazu podataka, ali ovu bi se skriptu trebalo ažurirati svaki put kad se baza podataka doda ili ukloni. Uz to, sve sigurnosne kopije baze podataka priložit će se jednoj datoteci koja će rasti po veličini nove sigurnosne kopije pri svakom pokretanju. Umjesto toga, na pravi način "postavi i zaboravi", stvorit ćemo batch skriptu koja će se prilagoditi vašem SQL Serveru kako se nove baze dodaju i uklanjaju.

Da biste došli do točke, ovo je sigurnosna kopija skripte:

@ECHO OFF
SETLOCAL

REM Dobivanje datuma u formatu GGGG-MM-DD (pod pretpostavkom da je lokalna država Sjedinjene Države)
FOR / F “tokeni = 1,2,3,4 delims = /” %% A IN ('Datum / T') DOSTAVITE sadaDate = %% D - %% B - %% C

REM Sastavite popis baza podataka za sigurnosno kopiranje
POstavi DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount UKLJUČEN; ODABIR NAZIVA OD master.dbo.sysDatabases WHERE [Ime] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList% "

REM Izradite sigurnosnu kopiju svake baze podataka, unaprijed dodajući datum u ime datoteke
FOR / F “tokeni = *” %% I IN (% DBList%) DO (
ECHO Izrada sigurnosne kopije baze podataka: %% I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [%% I] TO Disk =" D: Backup% NowDate% _ %% I.bak ""
JEKA.
)

REM Očistite temp datoteku
AKO POSTOJI „% DBList%“ DEL / F / Q „% DBList%“

ENDLOCAL

Pod pretpostavkom da je datum 1/13/2009 i imate 3 baze podataka nazvane "MyDB", "AnotherDB" i "DB Name with Spaces", skripta će proizvesti 3 datoteke na mjestu sigurnosne kopije navedenom:

  • 2009-01-13_AnotherDB.bak
  • Naziv 2009-01-13_DB sa Spaces.bak
  • 2009-01-13_MyDB.bak

Prilagodba i pokretanje serijskog skripta

Naravno, skriptu želite prilagoditi svom okruženju, pa evo što trebate učiniti:

  • Ako lokalizacija vašeg uređaja nije postavljena na SAD,naredba "Datum / T" ne može vratiti datum u formatu "Utorak 01/13/2009". Ako je to slučaj, varijabla NowDate neće proizvesti željeni format i treba je prilagoditi. (1 mjesto)
  • Promijenite "MyServer" da bude ime vašeg SQL poslužitelja (dodajte naziv instance ako je primjenjivo). (2 mjesta)
  • Baze podataka nazvane "master", "model", "msdb" i"Tempdb" su baze podataka koje isporučuju sa SQL serverom. Na ovaj popis možete dodati dodatna imena baza podataka ako ne želite da budu sigurnosna kopija. (1 mjesto)
  • Promijenite lokaciju sigurnosne kopije iz "D: sigurnosna kopija" u lokaciju na kojoj želite pohraniti datoteke sigurnosne kopije baze podataka.

Nakon što ste prilagodili paketnu skriptu, zakažite je da se pokrene putem Windows Task Schedulera kao korisnika s administratorskim pravima i sve je spremno.