Početna » kako da » Batch skripta za Backup sve vaše SQL Server baze podataka

    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
    SETLOCAL

    REM 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 - %% C

    REM 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.