Создание автоматического бэкапа SQL-базы на сервере SQL Express Edition

Все знакомы с постулатом о том, что для безопасной работы необходимо периодически создавать резервные копии своих баз данных, но тем не менее мало кто задумывался на эту тему до того, как в один «прекрасный» момент потерял все свои наработки.

В данной статье нашего блога я постараюсь дать пользователям программного продукта «Альта-ГТД PRO» ряд небольших, но очень важных рекомендаций о том, как настроить систему автоматического резервного копирования базы данных, используя только штатные средства MS SQL Server Express Edition 2005/2008 и операционной системы MS Windows.

blog_sql_backupВсе знакомы с постулатом о том, что для безопасной работы необходимо периодически создавать резервные копии своих баз данных, но тем не менее мало кто задумывался на эту тему до того, как в один «прекрасный» момент потерял все свои наработки.

В данной статье нашего блога я постараюсь дать пользователям программного продукта «Альта-ГТД PRO» ряд небольших, но очень важных рекомендаций о том, как настроить систему автоматического резервного копирования базы данных, используя только штатные средства MS SQL Server Express Edition 2005/2008 и операционной системы MS Windows.

 

Шаг 1. Создаем текстовый файл (например, backupGTD.txt) следующего содержания:

sqlcmd -S DECLSERVER\SQLGTD -E -Q «declare @s varchar(255) set @s=’E:\backup\GTD_’ + convert(varchar(1), datepart(dw, getdate())) + ‘.bak’ backup database GTD to disk = @s with init, noformat, skip, nounload»

sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов из командной строки в редактор запросов в режиме SQLCMD,

где:

  • -S — задает имя сервера, server[\instance_name];
  • DECLSERVER\SQLGTD — имя сервера/имя экземпляра, на котором крутится база;
  • -E — использует для соединения с SQL server вместо имени пользователя и пароля доверительное соединение;
  • -Q «cmdlinequery « — при запуске программы sqlcmd выполняет запрос, но выход из программы по завершении его выполнения не производится. Может быть выполнено несколько запросов, разделенных точкой с запятой. Заключайте запрос в кавычки, как показано выше;
  • declare — объявляем переменную s ,имя переменной всегда начинается с @, поэтому @s. В нашем случае @s — это папка (диск) хранения бэкапов;
  • varchar(n) — задает тип переменной @s как строковый с длинной строки n, в примере 255 символов;
  • set — задает значение переменной @s,в примере это папка backup на диске E (E:\backup\), далее задается имя бэкап файла, где набор функций convert(varchar(1), datepart(dw, getdate())) возвращает в текстовом формате с длиной в 1 символ текущий день недели (понедельник – 1, вторник – 2, и т.д.) и добавляется расширение bak. На выходе получим файл с именем GTD_НомерДняНедели.bak;
  • backup — создает бэкап;
  • database — указывает на создание бэкапа всей базы;
  • GTD — в нашем примере имя базы на SQL-сервере;
  • to disk — указывает на тип устройства резервного хранения, файл жесткого диска, и указана переменная @s, которой присвоено путь и имя создаваемого файла;
  • with init, noformat, skip, nounload — указывает на то, что необходимо произвести перезапись данных по кругу с переопределением заголовков, что позволит нам иметь 7 файлов бэкапа на каждый день недели, перезаписываемые по кругу.

При необходимости можно использовать и другие функции, например сжатие, см. справку по запросам и функциям Transact-SQL.

Шаг 2. Меняем расширение текстового файла на .cmd

В итоге получаем файл backupGTD.cmd. Запускать созданный командный файл необходимо с той машины, где установлена БД MS SQL.

Шаг 3. Автоматизируем данный процесс

Рассмотрим данный шаг на примере MS Windows Server 2008: Диспетчер сервера -> Конфигурация -> Планировщик заданий -> Библиотека планировщика заданий.

3.1 Создаем простую задачу:

3.2 Задаем имя и описание:

3.3 Указываем периодичность (ежедневно):

3.4 Указываем регулярность повторений и время выполнения:

3.5 В качестве действия указываем запуск программы:

3.6 Указываем путь к нашему файлу backupGTD.cmd:

3.7 Поставим галочку в чекбоксе «Открыть окно Свойства»:

Что получаем в итоге

 

Система автоматического резервного копирования базы данных настроена. Для этого мы воспользовались штатными средствами MS SQL Server Express Edition и Windows. На выходе мы будем иметь примерно такую картину:

Автор публикации:
Завизион Денис, ведущий специалист ООО СП «ИНТЕГРА»

Похожие публикации