Eräskripti kaikille SQL Server -tietokannoille
Olemme jo katseet, kuinka SQL Server -tietokannan varmuuskopiointi komentoriviltä, niin mitä jos haluat varmuuskopioida kaikki tietokannat kerralla? Voit luoda komentosarjan, joka suorittaa jokaisen tietokannan varmuuskopion, mutta tämä komentosarja olisi päivitettävä joka kerta, kun tietokanta lisätään tai poistetaan. Lisäksi tietokannan varmuuskopiot liitetään yhteen tiedostoon, joka kasvaa uuden varmuuskopion koon mukaan aina, kun se suoritetaan. Sen sijaan, todellisessa "aseta se ja unohda se" -muoto, luomme eräskriptin, joka mukautuu SQL-palvelimeen, kun uusia tietokantoja lisätään ja poistetaan.
Jotta saat oikean pisteen, tämä on varmuuskopiosarja:
@ECHO OFF
SETLOCALREM Hae päivämäärä muodossa YYYY-MM-DD (oletetaan, että alue on Yhdysvallat)
FOR / F “tokenit = 1,2,3,4 delims = /” %% A IN ('Päiväys / T') DO SET NowDate = %% D - %% B - %% CREM Rakenna varmuuskopioiden luettelo tietokannoista
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name OF master.dbo.sysDatabases WHERE [Nimi] EI IN ('master', 'malli', 'msdb', 'tempdb') '> “% DBList%”REM-varmuuskopio jokaisesta tietokannasta
FOR / F “tokenit = *” %% I IN (% DBList%) DO (
ECHO-varmuuskopiotietokanta: %% I
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%% I] TO Disk =" D: varmuuskopio% NowDate% _ %% I.bak ""
ECHO.
)REM Puhdista temp-tiedosto
JOS EXIST “% DBList%” DEL / F / Q “% DBList%”ENDLOCAL
Olettaen, että päivämäärä on 1/13/2009 ja sinulla on 3 tietokantoja nimeltä "MyDB", "AnotherDB" ja "DB Name with Spaces", skripti tuottaa 3 tiedostoa määritettyyn varmuuskopiointipaikkaan:
- 2009-01-13_AnotherDB.bak
- 2009-01-13_DB Nimi Spaces.bakilla
- 2009-01-13_MyDB.bak
Eräskriptin mukauttaminen ja suorittaminen
Tietenkin haluat muokata komentosarjaa ympäristöön, joten tässä on tehtävä:
- Jos laitteen sijaintia ei ole asetettu Yhdysvaltoihin, komento 'Date / T' ei saa palauttaa päivämäärää muodossa "ti 01/13/2009". Jos näin on, NowDate-muuttuja ei tuota haluttua muotoa ja se on säädettävä. (1 paikka)
- Vaihda 'MyServer' -asetukseksi SQL Server -palvelimen nimi (lisää tarvittaessa nimen nimi). (2 paikkaa)
- ”Master”, ”model”, ”msdb” ja ”tempdb” -tietokannat ovat tietokantoja, jotka toimittavat SQL Serverin. Voit lisätä luetteloon muita tietokantojen nimiä, jos et halua niiden varmuuskopiointia. (1 paikka)
- Muuta varmuuskopion sijainti D: varmuuskopioinnista paikkaan, johon haluat tietokannan varmuuskopiotiedostot.
Kun olet mukauttanut eräskriptiä, ajoita se Windows Task Schedulerin kautta käyttäjäksi, jolla on järjestelmänvalvojan oikeudet, ja olet kaikki asetettu.