MS SQL Express создание резервных копий по расписанию, создание .bat

0

MS SQL Express лишен агента, при помощи которого можно выполнять задачи по расписанию, но можно воспользоваться и стандартными средствами Windows.

создание скрипта (.sql) можно скачать тут рабочий пример zip.sql :

DECLARE @pathName NVARCHAR(512)

SET @pathName = 'D:\BACKUPS\RusAgro\RusAgro' + Convert(varchar(8), GETDATE(), 112) + '.bak'

BACKUP DATABASE [RusAgro] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

Этот скрипт создает бэкап с именем файла RusAgro_YYYYDDMM.bak где YYYYDDMM – это текущая дата. Дата в имени файла позволит нам создавать каждый день бэкап в новом файле. Запустите и проверьте что бэкап действительно создается такой какой вам и нужен. Этот скрипт сохраняем в какой-нибудь папке под именем RusAgro.sql, предположим D:\BACKUPS\RusAgro\ . В этой же папке создадим исполняемый файл backup.bat, следующего содержания:

sqlcmd -S SERVER\SQLEXPRESS -U sa -P password…. -i "D:\BACKUPS\Scripts\RusAgro.sql"

Где меняем SERVER – имя сервера, sa – имя пользователя, Password – пароль пользователя, norman.sql – имя сохраненного скрипта. Вторая и третья строка батника архивирует бекап в zip файл и удаляет сам файл бекапа. Для того чтобы работала архивация необходимо установить архиватор 7z и прописать полные пути до исполняемого файла 7z.exe либо положить 7z.exe и 7z.dll в ту же папку, где располагаются скрипты. Теперь можем запустить исполняемый файл backup.bat и проверить проработает ли он так как нужно. Последний шаг это записать schedule в задачи windows. Запускаем Task Scheduler из меню Пуск, либо набираем в командной строке taskschd.msc. В разных версиях Windows это выглядит по разному, да и информацию о том как сделать задачу можно прочитать в помощи Windows. Основное – это запускать задачу от имени пользователя с достаточными правами на используемые папки. При помощи таких действий можно так же запрограммировать и любые другие задачи. В скрипте schedule.sql можно перед бекапом вызвать какие-либо необходимые процедуры, может переиндексирование или сжатие базы данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.