5/5 - (1 голос)

Эта статья не претендует на пособие по созданию резервных копий баз данных 1С, но может помочь начинающим администраторам в автоматизации рутинных процессов создания бэкапов. И так, исходные данные:

  • Сервер 1С Предприятия 8.3.ххх
  • Сервер баз данных MS SQL 2008 и более новее

И так переходим в консоль управления MS SQL сервера, находим под списком баз данных пункт “Агент SQL сервер” в нем подпункт “Задания” и создаем новое Задание.

Задаем название задания, например BackUP1C – можно на русском, как вам удобно! Далее, наше задание будет состоять из нескольких шагов – сколько баз, столько и шагов будет у нас. Задаем имя шага, например “КопияБДБухгалтерии”, Выбираем тип скрипта, и далее вставляем сам скрипт:

Скрипт SQL:

Давайте разберем некоторые моменты:

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

Далее присваиваем к имени файла имя базы и время создания бэкапа, за это отвечают следующие строки:

Далее рассмотрим саму строку резервного копирования:

COPY_ONLY – параметр для копирования базы данных , а также создается резервная копия только для копирования для журнала транзакций

NOFORMAT — определяет, что при текущей операции резервного копирования существующие заголовки носителей и резервные наборы данных сохраняются на томах носителей, используемых для текущей операции резервного копирования. Это поведение по умолчанию.

COMPRESSION | NO_COMPRESSION — применяется только в SQL Server 2008 Enterprise и более поздних версиях; указывает необходимость сжатия резервной копии, переопределяя значение по умолчанию на уровне сервера. В нашем примере мы сжимаем копию.

NOREWIND и REWIND – параметры используются для магнитной ленты. Если у вас она не используется в качестве носителя, то параметры будут проигнорированы

STATS [ = percentage ] — этот параметр отвечает за отображение сообщения при каждом завершении очередного процента задания и позволяет отслеживать ход выполнения. Если процент не задан, то SQL Server выдает сообщение после каждых выполненных 10 процентов. Можете указать любой удобный для вас шаг.

CHECKSUM — указывает, что при операции резервного копирования выполняется проверка контрольной суммы и наличия разрывов на каждой странице (если эти проверки включены и доступны), а также будет создаваться контрольная сумма для всей резервной копии. Использование контрольных сумм резервных копий может повлиять на производительность рабочей нагрузки и пропускной способности резервного копирования. В тоже время параметр NO_CHECKSUM — явно отменяет создание контрольных сумм (и проверку контрольных сумм страниц) для резервных копий. Это поведение по умолчанию.

После вышеперечисленных шагов переходим в раздел “Дополнительно” и указываем действия которые будут происходить при успешном или аварийном завершении скрипта резервных копий. Так как у нас шагов несколько, чтобы процесс не прерывался, я рекомендую использовать продолжение сценариев даже при возникновении ошибки (переход к следующему шагу)

Вот как это выглядит на скриншоте:

При желании вы можете сохранить данные журнала в таблице.

В итоге у вас будет несколько шагов по количеству баз (обратите внимание на параметры поведения выполнения шагов скрипта “При успехе” и “При ошибке”):

Так же тут же можно указать начальный шаг, внизу формы.

После запуска задания на выходе (так как у нас 2 шага по резервному копированию двух баз) мы на выходе получим два файла:

Так же не забываем указать время выполнения:

и при необходимости дополнительные уведомления:

На этом в принципе всё. Диск Д, указанный в примере может быть у вас любым другим, как локальным так и сетевым. Если у вас этот диск локальный, то можно со временем скидывать все эти копии на любую другую сетевую папку. Для этого можно использовать подобный скрипт:

Мы копируем с помощью команды xcopy из папки backup с диска D в сетевую папку файлы с расширением *.bak на компьютер с эпичным названием supercomp 😂

Далее с помощью команды forfiles мы в папке /P D:\backup\ по маске /M *.bak удаляем файлы старше 5 дней /D -5 с помощью внешней команды /c “cmd /c del /q /f @file”

Этот скрипт можно поместить в cmd файл и добавить в планировщик заданий. На этом всё.

Для построения скриптов SQL всегда можно заглянуть в эту шпаргалку: https://docs.microsoft.com/ru-ru/sql/