Автоматическое создание резервных копий баз данных на SQL Server Express

<< Нажмите, чтобы отобразить содержание (Click to Display Table of Contents) >>

Операции с SQL-сервером >

Автоматическое создание резервных копий баз данных на SQL Server Express

В настоящей инструкции описаны действия, необходимые для автоматического создания резервных копий баз данных на SQL Server Express версии 2005, 2014.

Способ автоматического резервного копирования реализован с помощью планировщика заданий ОС Windows, запускающего задачу по настроенному расписанию. Задача запускает файл сценария, выполняющий создание резервной копии базы данных в файл по заданному пути.

 

Внимание!

Резервное копирование требует выполнения от имени учетной записи с правами администратора на этом компьютере.

Длительность времени от момента запуска команды до завершения формирования файла напрямую зависит от размера выбранной базы данных.

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

Не рекомендуется хранить резервные копии на том же диске, где установлена операционная система. Хранение копий на другом диске позволит сохранить пользовательские данные в случае неработоспособности или переустановки операционной системы.

 

Подготовка файла сценария с командой создания резервной копии базы данных

Команда запуска создания резервной копии базы данных в общем виде выглядит следующим образом:

sqlcmd -S <имя экземпляра SQL-сервера> -E -Q "declare @s varchar(255) set @s='<полный путь к каталогу>\a0data_' + convert(varchar(8), getdate(), 112) + '.bak' backup database A0Data to disk = @s with init, noformat, skip, nounload"

где:

<имя экземпляра SQL-сервера> — имя экземпляра SQL-сервера, на котором находится база данных;

<полный путь к каталогу> — полный путь к каталогу для сохранения автоматически создаваемых резервных копий базы данных;

convert(varchar(8), getdate(), 112) — служебный параметр, задающий формат даты в имени файла резервной копии. Данное значение подставит в имени файла дату в формате 'ггггммдд'. Такой вариант удобен, когда необходимы ежедневные копии за период более недели и за их количеством на диске следит ответственный сотрудник.

Значение convert(varchar(1), datepart(dw, getdate())) вместо даты подставит в имени файла порядковый номер дня недели (1-7). Этот вариант удобен, когда необходимы ежедневные копии только за неделю, за их количеством на диске следить не требуется, т.к. происходит автоматическая перезапись.

Все параметры строки являются обязательными.

Все пользовательские значения (пути, наименования) должны существовать.

 

Пример команды запуска

Например, на компьютере (сервере) экземпляр Комплекса А0 установлен в C:\Program Files (x86)\A0Win1,

имя его SQL-сервера — localhost\A0WIN1,

каталог для сохранения резервных копий этого экземпляра — D:\A0_BackUps.

 

Если требуется одна копия в сутки и в имени файла необходима дата в формате 'ггггммдд', то при этих условиях команда запуска будет выглядеть так:

sqlcmd -S localhost\A0WIN1 -E -Q "declare @s varchar(255) set @s='D:\A0_BackUps\a0data_' + convert(varchar(8), getdate(), 112) + '.bak' backup database A0Data to disk = @s with init, noformat, skip, nounload"

При успешном выполнении команды будет создан файл «D:\A0_BackUps\a0data_20180425.bak», где «20180425» — текущая дата. Повторный запуск такой команды в этот же день перезапишет ранее созданный в этот день файл резервной копии.

 

Если для этого же экземпляра Комплекса А0 требуется одна копия за каждый день недели и в имени файла достаточно указать порядковый номер дня недели (1-7), то при этих условиях команда запуска будет выглядеть так:

sqlcmd -S localhost\A0WIN1 -E -Q "declare @s varchar(255) set @s='D:\A0_BackUps\a0data_' + convert(varchar(1), datepart(dw, getdate())) + '.bak' backup database A0Data to disk = @s with init, noformat, skip, nounload"

При успешном выполнении команды будет создан файл «D:\A0_BackUps\a0data_1.bak», где «1» означает, что копия создана в понедельник. Повторный запуск такой команды в этот же день (либо через неделю) перезапишет ранее созданный в этот день файл резервной копии.

 

Создание файла сценария

1.Создать новый текстовый файл (например, с помощью Блокнота).

2.В файл добавить команду запуска создания резервной копии базы данных с собственными значениями (пути, наименования). Как выглядит команда подробно описано выше.

3.Сохранить полученный файл с произвольным именем и расширением «*.cmd».

 

Готовый файл сценария можно скачать в виде архива с хранилища файлов (DropBox)  Компании ИнфоСтрой.

После распаковки архива файл «*.cmd» нужно отредактировать (например, с помощью Блокнота), заменив «localhost\A0WIN1» и «C:\ProgramData\InfoStroy\A0\A0Win1\Backups» на собственные значения. Сохранить изменения в файле.

 

Проверка работы

Для проверки работоспособности необходимо запустить файл сценария «*.cmd» с правами администратора и убедиться, что файл резервной копии сформировался в заданном каталоге. Если файл не сформировался, необходимо проверить все параметры команды в файле сценария.

 

Cоздание и настройка задачи автоматического резервного копирования в планировщике заданий ОС Windows

Требуется автоматизировать запуск файла сценария, выполняющего создание резервной копии базы данных, по заданному расписанию. Ниже на примере Windows 10 описано cоздание и настройка задачи в планировщике заданий ОС Windows.

1.Открыть «Планировщик заданий» через меню «Пуск» > «Служебные — Windows» > «Панель управления» > «Администрирование» > «Планировщик заданий».
(Пример пути для серверной ОС: «Диспетчер сервера» > «Конфигурация» > «Планировщик заданий» > «Библиотека планировщика заданий»).

2.В области «Действия» выбрать пункт «Создать простую задачу».
autobackup_01

3.Ввести имя задачи, описание и нажать «Далее».
autobackup_02

4.Указать, когда требуется запускать задачу, и нажать «Далее».
autobackup_03

5.Отметить дату и время начала, а также дни недели и нажать «Далее»
(в приведенном примере задача будет выполняться каждый четверг в 17:00).
autobackup_04

6.Оставить отметку на пункте «Запустить программу» и нажать «Далее».
autobackup_05

7.Нажать «Обзор» и выбрать файл сценария «*.cmd», выполняющий создание резервной копии базы данных, затем нажать «Далее».
autobackup_06

8.Нажать «Готово».
autobackup_07

9.После завершения найти созданную задачу в списке и в ее контекстном меню выбрать пункт «Свойства».
autobackup_08

10.На вкладке «Общие» в блоке «Параметры безопасности» требуется задать учетную запись, у которой достаточно прав для выполнения задачи. Для смены учетной записи нажать «Изменить».
autobackup_09
Рекомендуем использовать учетную запись «СИСТЕМА» (может выглядеть как «SYSTEM»).

10.1.После нажатия «Изменить» откроется окно поиска учетной записи, где следует нажать «Размещение».
autobackup_10

10.2.В окне «Размещение» выбрать имя текущего компьютера и нажать «ОК».
autobackup_11

10.3.В следующем окне нажать «Дополнительно».
autobackup_12

10.4.Далее нажать «Поиск».
autobackup_13

10.5.В полученном списке нужно найти учетную запись «СИСТЕМА» (может выглядеть как «SYSTEM») и нажать «ОК».
autobackup_14
Подтвердить выбор нажатием «ОК».
autobackup_15
autobackup_16

На вкладках «Условия» и «Параметры», при необходимости, можно настроить прочие параметы задачи. Для завершения настройки задачи нажать «ОК».
 

11.Проверить работоспособность задачи можно путем запуска вручную. Для этого найти созданную задачу в списке и запустить её через пункт «Выполнить» контекстного меню. В зависимости от размера выбранной базы данных, через некоторое время по заданному пути должен сформироваться файл резервной копии базы данных. Если файл не сформировался, необходимо проверить и исправить параметры задачи.

 

Наверх