Бакап средствами SQL

Не редко встаёт вопрос, как создать BackUp какой-либо базы данных средствами Windows. Особенно эта тема актуальна в бесплатных редакциях SQL Server (MSDE, Express), где SQL Agent вообще отсутствует. Реализуется это проще, чем может показаться.
Для теста создаём папку C:\BackupDB. В ней создаём файл SQLCommand.txt с текстом (командой на T-SQL):
view sourceprint?

Код
1
DECLARE @str NVARCHAR(255)
2
SET @str=’C:\BackupDB\master_’+CONVERT(VARCHAR, GETDATE(), 105)+’.bak’
3
BACKUP DATABASE master TO DISK=@str

В этом примере мы создаём в нашей папке BackUp системной базы данных master с именем =’master_[текущая дата].bak’.
Но мы не хотим хранить наши Backup`ы в обычном формате, мы хотим сэкономить дисковое пространство и хранить их в виде архивов. Проблема в том, что архивирование копий БД появилось только в SQL Server 2008, да и то, только в полной редакции. Для архивирования я буду использовать 32-разрядную консольную версию RAR (http://www.rarlab.com/).
Файл Rar.exe копируем в нашу папку C:\BackupDB. Так же создадим папку C:\BackupDB \BackupArchive, где будем хранить наши заархивированные копии базы. Ну вот собственно и всё, осталось создать .bat файл который и будет создавать копию базы, архивировать её и кидать в папку BackupArchive. Создаём в папке C:\BackupDB файл rar.bat с текстом:

Код
sqlcmd -E -i SQLCommand.txt -o Result.txt
rar.exe a -df -inul -ag[dd_mm_yyyy] C:\BackupDB\BackupArchive\master.rar C:\BackupDB\*.bak

sqlcmd.exe-это утилита командной строки для SQL Server 2005/2008 присутствует во всех редакциях. В более ранних версиях osql.exe(SQL Server 2000), isql.exe(SQL Server 7.0). Их синтаксис очень похож и более подробное описание по командам можно прочитать в BOL (http://technet.microsoft.com/ru-ru/libr … 62773.aspx).
У меня в примере запускается утилита с параметрами SQL Server по умолчанию (local), авторизация Windows, на входе файл с командами SQLCommand.txt и результат работы вывожу в файл Result.txt. После чего я архивирую полученный Backup и помещаю в папку C:\BackupDB\BackupArchive, чтобы получить помощь по командам консольной версии RAR, необходимо запустить её с параметром rar.exe -?

Яндекс.Метрика