четверг, 10 октября 2019 г.

Регулярное автоматическое резервное копирование баз АИСУ "Параграф"

В работе государственных образовательных учреждений некоторых регионов(и в Санкт-Петербурге в том числе) централизованно используется АИСУ "Параграф", основанная на системе управления базами данных Firebird. "Параграф" постоянно развивается, за последние несколько лет в нем появилось много новых модулей и функций. Несомненно, это важный элемент работы школ и потеря хранимых в нём данных будет очень критична для учреждения. Сам "Параграф", к сожалению, до сих пор не располагает никакими инструментами для выполнения регулярного резервного копирования своих баз в автоматическом режиме. Сделать резервные копии можно лишь вручную через менеджер баз данных. Думаю, не нужно объяснять, насколько неудобно делать резервные копии руками, а тем более - делать их так регулярно. Поэтому чаще всего их делают от случая к случаю. В лучшем случае - перед очередным обновлением серверной части.
Тем не менее, очень удобно иметь в наличии регулярные бекапы, чтобы в случае чего была возможность поднять базу из недавней копии, а не копии, сделанной 2-3 месяца(а то и полгода-год) назад и потом восстанавливать данные за весь потерянный период.
Для решения этой задачи был написан скрипт, который использует встроенную в Firebird утилиту резервного копирования gbak.exe. Скрипт с комментариями располагается на Яндекс-диске и его можно свободно скачать по этой ссылке(пароль на архив - 1).
Для корректной работы скрипта должен быть установлен свободно распространяемый архиватор 7zip (www.7-zip.org) . Он используется для упаковывания резервных копий баз в архив формата ZIP с максимальной степенью сжатия. Это увеличивает время создания резервных копий(чуть больше получаса на процессоре Core2 Quad Q9400 с ОЗУ 8 Gb DDR3), но при этом позволяет уменьшить размер резервной копии примерно на 10% по сравнению со сжатием встроенными средствами Windows(этот вариант использует менеджер баз данных). Поскольку предполагается, что скрипт будет запускаться ночью автоматически, то бОльшее время выполнения не критично, при этом уменьшение размера хранимых резервных копий важно.
Скрипт написан для 64-битной операционной системы Windows и для 64-битных версий приложений Firebird и 7zip. Поэтому если у вас стоят 32-битные версии, вам нужно будет поменять соответствующие пути к программам в скрипте, либо переустановить их на 64-битные.
Для настройки регулярного резервного копирования запускаем планировщик заданий(нажимаем "Пуск" и набираем "Планировщик заданий):

В колонке "Действие" нажимаем "Создать задачу":

На вкладке "Триггеры" задаём интервал выполнения задачи и время выполнения. В примере это ежедневно, в 12 часов ночи. Нажимаем "ОК".:

На вкладке "Действия" нажимаем "Создать", в поле "Действие" выбираем "Запуск программы", в поле "Программа или сценарий" задаём путь к скрипту, нажимаем "ОК".
 

В открывшемся окне на вкладке "Общие" в поле "Имя" задаем имя создаваемой задаче, ставим галочку "Выполнять вне зависимости от регистрации пользователя"(чтобы задание выполнялось даже, когда не выполнен вход в систему, например после перезагрузки сервера), нажимаем ОК:

В появившемся окне задаем пароль для учетной записи, под которой будет выполняться скрипт, нажимаем "ОК":

Таким образом было создано задание, по которому каждую ночь автоматически в 12 часов будет запускаться скрипт, который делает резервные копии баз Параграфа, а затем упаковывает их в архивы ZIP с датой и временем создания в имени файла.
Скрипт проверен и успешно работает на Windows 7 x64 SP1 Professional. Создаваемые скриптом бекапы проверены на предмет восстановления менеджером баз данных АИСУ "Параграф". Восстановление проходит без ошибок, Параграф после восстановления работают корректно.
Помимо выполнения регулярного резервного копирования очень важно правильно хранить созданные копии данных. Не стоит забывать о правиле «3-2-1»
 
Обновление от июня 2022 года:
В связи с обновлением Firebird с версии 2.5 на 4 изменился путь к утилите gbak.exe.
Обновленный скрипт для работы с Firebird 4-й версии доступен по этой ссылке(пароль на архив - 1).

Комментариев нет:

Отправить комментарий