Mēs jau esam apsprieduši, kā no komandrindas dublēt SQL Server datu bāzi, tad, ja vēlaties vienlaikus dublēt visas savas datu bāzes? Varat izveidot partijas skriptu, kurā tiek izpildīta katras datu bāzes rezerves kopija, bet šis skripts ir jāatjaunina katru reizi, kad tiek pievienota vai noņemta datubāze. Turklāt datubāzes dublējumkopijas tiks pievienotas vienam failam, kas palielināsies pēc jaunās rezerves lieluma katru reizi, kad tas tiks palaists. Tā vietā, taisnīgi nosakot un aizmirstiet modeli, mēs izveidosim partijas skriptu, kas pielāgosies jūsu SQL Server, kad tiek pievienotas un noņemtas jaunas datubāzes.
Lai iegūtu tiesības uz punktu, tas ir rezerves skripts:
@ECHO OFF
SETLOKĀLSREM Iegūstiet datumu formātā GGGG-MM-DD (tiek pieņemts, ka vietne ir Amerikas Savienotās Valstis)
FOR / F "žetoni = 1,2,3,4 delims = /" %% A IN ('Date / T') DO SET NowDate = %% D - %% B - %% CREM Veidojiet rezerves datu bāzu sarakstu
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NrCount ON; SELECT NAME FROM master.dbo.sysDatabase WHERE [Name] NOT IN ("master", "modelis", "msdb", "tempdb") ">"% DBList% "REM dublē katru datubāzi, pievienojot faila nosaukumam datumu
FOR / F "žetoni = *" %% I IN (% DBList%) DO (
ECHO dublēšanas datu bāze: %% I
SqlCmd -E -S MyServer -Q "BACKUP datu bāze [%% I] Uz diska =" D: Backup% NowDate% _ %% I.bak ""
ECHO.
)REM Notīriet temp failu
Ja ir "% DBList%" DEL / F / Q "% DBList%"ENDLOCAL
Pieņemot, ka datējums ir 2009. gada 1. janvāris, un jums ir 3 datubāzes ar nosaukumu MyDB, AnotherDB un DB Name with Spaces, skripts izveidos 3 failus norādītajā dublējuma atrašanās vietā:
Protams, jūs vēlēsities pielāgot skriptu savai videi, tāpēc šeit ir tas, kas jums jādara:
Kad esat pielāgojis partijas skriptu, plānojiet to palaist, izmantojot Windows Task Scheduler kā lietotāju ar administratora tiesībām, un jūs visi esat iestatījis.