Batch Script az összes SQL Server adatbázis biztonsági mentéséhez

Tartalomjegyzék:

Batch Script az összes SQL Server adatbázis biztonsági mentéséhez
Batch Script az összes SQL Server adatbázis biztonsági mentéséhez

Videó: Batch Script az összes SQL Server adatbázis biztonsági mentéséhez

Videó: Batch Script az összes SQL Server adatbázis biztonsági mentéséhez
Videó: How To Install Home Assistant on Windows in 3 minutes - YouTube 2024, Lehet
Anonim

Már lefedtük, hogy miként lehet biztonsági másolatot készíteni az SQL Server adatbázisról a parancssorból, mi van akkor, ha egyszerre mindegyik adatbázisát menteni szeretné? Létrehozhat egy kötegelt parancsfájlt, amely minden adatbázisra kiterjeszti a mentési parancsot, de ezt a szkriptet minden egyes adatbázis hozzáadásakor vagy eltávolításakor frissíteni kell. Ezenkívül az adatbázis-mentések mindegyike egy olyan fájlba kerül, amely az új biztonsági másolat méretének növekedésével minden alkalommal fut. Ehelyett, az igazi "beállítani és elfelejteni" divatot, létrehozunk egy kötegelt szkriptet, amely alkalmazkodni fog az Ön SQL Server-hez, mivel új adatbázisokat adnak hozzá és távolítanak el.

A pont eléréséhez ez a biztonsági parancsfájl:

@ECHO OFF SETLOCAL

REM Get date in format YYYY-MM-DD (assumes the locale is the United States) FOR /F “tokens=1,2,3,4 delims=/” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C

REM Build a list of databases to backup SET DBList=%SystemDrive%SQLDBList.txt SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’)” > “%DBList%”

REM Backup each database, prepending the date to the filename FOR /F “tokens=*” %%I IN (%DBList%) DO ( ECHO Backing up database: %%I SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%%I] TO Disk=’D:Backup%NowDate%_%%I.bak'” ECHO. )

REM Clean up the temp file IF EXIST “%DBList%” DEL /F /Q “%DBList%”

ENDLOCAL

Feltételezve, hogy a dátum 2009.03.13., És 3 adatbázis van "MyDB", "AnotherDB" és "DB Name with Spaces" néven, akkor a parancsfájl 3 fájlt hoz létre a megadott biztonsági mentési helyre:

  • 2009-01-13_AnotherDB.bak
  • 2009-01-13_DB Name with Spaces.bak
  • 2009-01-13_MyDB.bak

A kötegelt script testreszabása és futtatása

Természetesen meg szeretné testreszabni a szkriptet a környezetéhez, ezért itt kell tennie:

  • Ha a gép területe nincs beállítva az Egyesült Államokra, a "Date / T" parancs nem adhatja vissza a dátumot "Tue 01/13/2009" formátumban. Ebben az esetben a NowDate változó nem fogja a kívánt formátumot létrehozni, és ki kell igazítani. (1 hely)
  • Módosítsa a "MyServer" nevét az SQL Server nevére (adja hozzá a példánynevet, ha alkalmazható). (2 szállás)
  • A "mester", "modell", "msdb" és a "tempdb" nevű adatbázisok az SQL Serverrel szállított adatbázisok. Ehhez a listához hozzáadhat további adatbázisneveket, ha nem szeretné, hogy biztonsági másolatot készítsenek róla. (1 hely)
  • Módosítsa a biztonsági mentési helyet a "D: Backup" -ról arra a helyre, ahová az adatbázis biztonsági mentési fájljait tárolja.

Miután testreszabta a kötegelt szkriptet, ütemezze azt, hogy a Windows Task Scheduler segítségével futtassa rendszergazdai jogosultsággal rendelkező felhasználóként, és mind meg van adva.

Ajánlott: