If-Koubou

Partijas skripts, lai dublētu visas jūsu SQL Server datu bāzes

Partijas skripts, lai dublētu visas jūsu SQL Server datu bāzes (Kā)

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ĀLS

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

REM 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ā:

  • 2009-01-13_AnotherDB.bak
  • 2009-01-13_DB Nosaukums ar Spaces.bak
  • 2009-01-13_MyDB.bak

Pielāgošana un partijas skripta palaišana

Protams, jūs vēlēsities pielāgot skriptu savai videi, tāpēc šeit ir tas, kas jums jādara:

  • Ja jūsu ierīces lokalizācija nav iestatīta uz ASV, komanda Date / T var neatbilst datumam formātā "Tue 13/01/2009". Ja tas tā ir, mainīgais NowDate neradīs vēlamo formātu un ir jāpielāgo. (1 vieta)
  • Mainiet "MyServer" kā savu SQL Server nosaukumu (ja nepieciešams, pievienojiet instances nosaukumu). (2 vietas)
  • Datubāzes ar nosaukumu "master", "modelis", "msdb" un "tempdb" ir datu bāzes, kas tiek piegādātas kopā ar SQL Server. Šajā sarakstā varat pievienot papildu datu bāzes nosaukumus, ja nevēlaties tos dublēt. (1 vieta)
  • Mainiet dublējuma atrašanās vietu no "D: Backup" uz vietu, kur vēlaties saglabāt datu bāzes dublējumkopijas.

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.