Партида скрипт за архивиране на всички ваши SQL Server бази данни

Съдържание:

Партида скрипт за архивиране на всички ваши SQL Server бази данни
Партида скрипт за архивиране на всички ваши SQL Server бази данни

Видео: Партида скрипт за архивиране на всички ваши SQL Server бази данни

Видео: Партида скрипт за архивиране на всички ваши SQL Server бази данни
Видео: Откат до iOS 8.4.1, iOS 6.1.4 второй системой, Jailbreak. Без компа и через комп. iPhone 5 прокачка - YouTube 2024, Може
Anonim

Вече разгледахме как да архивирате SQL Server база данни от командния ред, така че какво, ако искате да архивирате всичките си бази данни наведнъж? Бихте могли да създадете партиден скрипт, който изпълнява резервната команда за всяка база данни, но този скрипт трябва да се актуализира всеки път, когато се добавя или премахва база данни. Освен това резервните копия на базата данни ще бъдат добавени към един файл, който ще нараства с размера на новото резервно копие всеки път, когато се изпълнява. Вместо това, в истинската мода "Настройте я и я забравяйте", ще създадем партиден скрипт, който ще се адаптира към вашия SQL Server, когато се добавят и премахват нови бази данни.

За да стигнете до точката, това е резервният скрипт:

@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

Ако приемем, че датата е 1/13/2009 и имате 3 бази данни, наречени "MyDB", "OtherDB" и "DB Name with Spaces", скриптът ще създаде 3 файла в посоченото място за архивиране:

  • 2009-01-13_AnotherDB.bak
  • 2009-01-13_DB Име с Spaces.bak
  • 2009-01-13_MyDB.bak

Персонализиране и изпълнение на партидния скрипт

Разбира се, ще искате да персонализирате сценария за вашата среда, така че ето какво трябва да направите:

  • Ако локалът на вашата машина не е настроен на САЩ, командата 'Date / T' може да не върне датата във формата "Tue 01/13/2009". Ако случаят е такъв, променливата "NowDate" няма да даде желания формат и трябва да бъде коригирана. (1 място)
  • Променете "MyServer", за да бъде името на вашия SQL Server (добавете името на потребителския модел, ако е приложимо). (2 места)
  • Базите данни, наречени "master", "model", "msdb" и "tempdb", са бази данни, които се доставят със SQL Server. Можете да добавите допълнителни имена на базата данни в този списък, ако не искате те да бъдат архивирани. (1 място)
  • Променете местоположението за архивиране от "D: Backup" до мястото, където искате да се съхраняват архивните файлове на базата данни.

След като персонализирате партидния скрипт, планирайте го да се изпълнява чрез Windows Task Scheduler като потребител с права на администратор и всички сте настроени.

Препоръчано: