Вече разгледахме как да архивирате SQL Server база данни от командния ред, така че какво, ако искате да архивирате всичките си бази данни наведнъж? Бихте могли да създадете партиден скрипт, който изпълнява резервната команда за всяка база данни, но този скрипт трябва да се актуализира всеки път, когато се добавя или премахва база данни. Освен това резервните копия на базата данни ще бъдат добавени към един файл, който ще нараства с размера на новото резервно копие всеки път, когато се изпълнява. Вместо това, в истинската мода "Настройте я и я забравяйте", ще създадем партиден скрипт, който ще се адаптира към вашия SQL Server, когато се добавят и премахват нови бази данни.
За да стигнете до точката, това е резервният скрипт:
@ OFF OFF
SETLOCALREM Вземете дата във формат YYYY-MM-DD (предполага локализация е Съединените щати)
FOR / F "символи = 1,2,3,4 delims = /" %% A IN ('Дата / T') DO SET NowDate = %% D - %% B - %% CREM Изграждане на списък с бази данни за архивиране
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON; SELECT Име от master.dbo.sysДата бази WHERE [Име] NOT IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList%REM Архивиране на всяка база данни, пренасочвайки датата към името на файла
FOR / F "символи = *" %% I IN (% DBList%) DO (
ECHO База данни за архивиране: %% I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [%% I] На диск =" D: Гръб% NowDate% _ %% I.bak ""
Хуманитарна помощ.
)REM Почистете темп файла
АКО съществува "% DBList%" DEL / F / Q "% DBList%"ENDLOCAL
Ако приемем, че датата е 1/13/2009 и имате 3 бази данни, наречени "MyDB", "OtherDB" и "DB Name with Spaces", скриптът ще създаде 3 файла в посоченото място за архивиране:
Разбира се, ще искате да персонализирате сценария за вашата среда, така че ето какво трябва да направите:
След като персонализирате партидния скрипт, планирайте го да се изпълнява чрез Windows Task Scheduler като потребител с права на администратор и всички сте настроени.