Olemme jo käsitelleet SQL Server -tietokannan varmuuskopion komentoriviltä, joten mitä haluat varmuuskopioida kaikki tietokannasi kerralla? Voit luoda komentosarjan, joka suorittaa kunkin tietokannan varmuuskopiokomennon, mutta tämä skripti olisi päivitettävä aina, kun tietokantaan lisätään tai poistetaan. Lisäksi tietokannan varmuuskopioita lisätään yhteen tiedostoon, joka kasvaa uuden varmuuskopion koko ajan aina, kun sitä ajetaan. Sen sijaan, todellisessa "asettaa ja unohda se" -mallin, luomme komentosarjan, joka sopeutuu SQL Serverisi, kun uusia tietokantoja lisätään ja poistetaan.
Päästäkseen oikeaan kohtaan tämä on varmuuskopiokoodi:
@ ECO POIS
SETLOCALREM Hae päivämäärä muodossa YYYY-MM-DD (olettaa, että locale on Yhdysvallat)
FOR / F "merkkiä = 1,2,3,4 delims = /" %% A IN ('Päiväys / T') DO SET NowDate = %% D - %% B - %% CREM Luo luettelo tietokannoista varmuuskopiointiin
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON; SELECT Nimi FROM master.dbo.sysDatabases Missä [Name] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList% "REM Varmuuskopioi jokainen tietokanta, ennen päivämäärää tiedostonimiin
FOR / F "merkkiä = *" %% I IN (% DBList%) DO (
ECHO Tietokannan varmuuskopiointi: %% I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [%% I] levylle =" D: varmuuskopio% NowDate% _ %% I.bak ""
ECHO.
)REM Puhdista temp-tiedosto
JOS OLET "% DBList%" DEL / F / Q "% DBList%"ENDLOCAL
Jos päivämäärä on 1/13/2009 ja sinulla on 3 tietokantaa nimeltään "MyDB", "AnotherDB" ja "DB Name with Spaces", käsikirjoitus tuottaa 3 tiedostoa varmuuskopiointipaikassa:
Tietenkin, haluat muokata käsikirjoituksen ympäristöön, joten tässä on sinun tehtäväsi:
Kun olet määrittänyt eräkäsikirjoituksen, aseta se toimimaan Windows Task Scheduler -ohjelman avulla käyttäjänä, jolla on järjestelmänvalvojan oikeudet ja olet kaikki asetettu.