Запуск скрипта с необходимой периодичностью осуществляется на сервере баз данных с помощью "Назначенных заданий" Windows. Учетная запись, под которой запускается скрипт, должна обладать всеми необходимыми разрешениями для выполнения операции резервного копирования на сервере SQL, а также для записи файлов в указанные папки.
Для работы скрипта необходимы:
архиватор, в примере используется "WinRar";
утилита для удаления файлов, в примере используется "Forfiles.exe" из Windows Resource Kit;
файл "Bases.txt" со списком имен баз данных. Имя каждой базы записывается с новой строки.
Скрипт запускается непосредственно на SQL Server'e, имя инстанции SQL Server указывается в переменной %SQLSERVER%. Код SQL запускается с помощью утилиты "SQL Query Tool", путь к утилите указывается в переменной %ISQL%, например "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE".
Скрипт работает по следующей схеме:
Создается резервная копия, имя файла при этом формируется следующим образом: "Имя_базы_ДД_ММ_ГГГГ.db". База сохраняется локально, путь к базе данных указывается в переменной %BACKUP%. Создаются лог-файлы резервного копирования для каждой базы в виде "log_autobackupsql_<Имя_базы>.txt" и общий лог-файл "backup_log.txt", путь к папке для хранения лог-файлов указывается в переменной %LOG%.
Созданный файл запаковывается архиватором. Расположение архиватора указывается переменной %RAR%.
Созданный архив копируется на два указанных сетевых источника хранения архивов: переменные %PATH01% и %PATH02%. Если путь не указан, копирование архива не производится.
Архивы, созданные ранее определенного количества дней, удаляются. Утилита для удаления указывается в переменной %FORFILES%. Количество дней указывается в переменной %DAYS%.
Пример скрипта доступен для скачивания: backup_script.zip (2 Кб). Перед запуском скрипта необходимо задать в нём свои данные (имя инстанции SQL Server, пути к папкам для резервного копирования и др.) в соответствии с приведенным выше описанием.