Автоматическое резервное копирование (планировщик ОС Windows)

Назначение задания по резервному копированию баз данных сервера SQL средствами планировщика ОС Windows.

Поскольку в MS SQL редакции Express отсутствует планировщик заданий, то автоматическое периодическое резервное копирование создается через назначение задания для ОС Windows: создать новое задание по периодическому исполнению (запуску) специального командного файла (bat файл), в котором прописана команда по созданию резервной копии, при этом на момент запуска bat файла SQL сервер должен быть запущен.

Приводим как пример содержимого командного bat файла (выделена синим) по созданию резервной копии, результатом исполнения которого является архив в формате rar. Для применения ее в автоматическом режиме скопировать от строки "rem --начало bat файла" и до строки "rem-- конец bat файла" в текстовый файл с расширением .bat и в планировщике ОС Windows задать периодичность запуска этого файла.

rem --начало bat файла--starting bat file for create backup of SQL data base -----

@echo off

rem path_work_sql - путь (папка) на SQL сервере и относительно SQL сервера для резервных копий. Должен заканчиваться на \ и существовать.

rem path_work_to_sql - тот же путь (папка) на SQL сервере, но относительно рабочей станции.

rem log_name - имя лог файла создания резервной копии.

rem base_name - имя базы данных.

rem winrarcommand - команда с путем вызова RAR архиватора.

rem arjcommand - команда вызова arj архиватора (по умолчанию не применяется).

rem sql_adm_login - логин администратора SQL сервера (sa).

rem sql_adm_pass - пароль администратора SQL сервера (должен быть, пустой недопустим).

rem sql_serv_name - имя SQL servera.

rem --------------------- ИНИЦИАЛИЗАЦИЯ ----------------------------------

set path_work_sql=c:\base\backup\

set path_work_to_sql=\\wood\base\backup\

set log_name=create_backup.log

set base_name=budjet_2009

set sql_serv_name=blade

set sql_adm_login=sa

set sql_adm_pass=123

set winrarcommand="C:\Program Files\WinRAR\Rar.exe"

set arjcommand="C:\Program Files\arc\arj.exe"

rem ---------------ВЫПОЛНЕНИЕ ---------------------------------- создание резервной копии

set ActualDate=%DATE:~6,4%_%DATE:~3,2%_%DATE:~0,2%

set actualTime=%TIME:~0,2%_%TIME:~3,2%

set logfile=%path_work_to_sql%%log_name%

set base_backup=%path_work_sql%%base_name%__%ActualDate%__%actualTime%.bak

set base_backup_rar=%path_work_to_sql%%base_name%__%ActualDate%__%actualTime%.bak

set arj_name=%path_work_to_sql%%base_name%_bak_

echo ################################################################################ >> %logfile%

date /t >> %logfile%

time /t >> %logfile%

echo exec( 'BACKUP DATABASE %base_name% TO DISK = N''%base_backup%'' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT') | osql -U %sql_adm_login% -P %sql_adm_pass% -S %sql_serv_name%>> %logfile%

rem %arjcommand% m -jm -jt -hk -e -i %arj_name% %base_backup_rar% >> %logfile%

%winrarcommand% a -rr5p -df -dh -ibck -inul -ep -agYYYY-MM-DD__HH-MM "%arj_name%" "%base_backup_rar%"

set path_work_sql=

set path_work_to_sql=

set log_name=

set base_name=

set sql_serv_name=

set sql_adm_login=

set sql_adm_pass=

set ActualDate=

set actualTime=

set logfile=

set base_backup=

set base_backup_rar=

set arj_name=

set arjcommand=

rem --конец bat файла---------------------------------------------------------------------------

Замечания по bat файлу

1. Расшифровка параметров в блоке ИНИЦИАЛИЗАЦИЯ.

2. Правило указания путей.

В разделе ИНИЦИАЛИЗАЦИИ желательно указывать пути без русских символов и без пробелов.

Если путь содержит символы кирилицы, то путь надо указывать в DOS формате 8.3. Например, вместо D:\#Базы\backup\ указать D:\#c726~1\backup\ (это пример, в реальности имя в коротком формате генерируется при создании и в общем случае не зависит от самого значения имени на кирилице).

Если путь содержит пробелы, то значение параметра надо заключить в кавычки. Пример

set path_work_sql="c:\base budjet\backup\"

3. Правило указания параметров.

При корректировке параметров в разделе ИНИЦИАЛИЗАЦИИ необходимо соблюдать следующее правило: недопустимы пробелы вокруг символа = и в конце значений параметров (в конце строк).

Правильно set path_work_sql=c:\base\backup\

Не правильно set path_work_sql = c:\base\backup\

4. Исходные требования и результат выполнения файла: