В дополнение к статье «Автоматизируй это!» выкладываю приложение «Перезаливатор», о котором шла речь в докладе.
Видеоинструкция
О причинах и контексте создания данного приложения, вы можете узнать из приведенного ниже 20-ти минутного видео. В нем также подробно разбирается процесс установки, настройки и эксплуатации Перезаливатора.
Описание
Под словом "перезалить" понимается процедура восстановления одной базы данных (база назначения) из резервных копий другой базы данных (база источник). Например, если необходимо загрузить данные из базы продуктива в тестовую или разработочную.
Перезаливатор позволяет максимально автоматизировать процесс "перезаливки" баз данных 1С:Предприятия.
Реализован на OneScript (http://oscript.io). Для работы необходим OneScript версии 1.0.20 или выше.
Код открыт, страница проекта на GitHub: https://github.com/Tavalik/Perezalivator
Имеется GUI-интерфейс для выбора базы-приемника и базы-назначения, а также окно с выводом результата.
Установка
- Установить OneScript (подробно про установку и настройку можно узнать, например, здесь).
- Скачать файл "Distr\Perezalivator-<версия>.ospx" (ссылка)
- Запустить установку с помощью пакетного менеджера opm
opm install -f <Путь к файлу Perezalivator-<версия>.ospx>
Можно также воспользоваться командным файлом "install.bat" из директории "Distr"
Зависит от:
- Библиотеки json: https://github.com/oscript-library/json
- Библиотеки gui: https://github.com/oscript-library/oscript-simple-gui
- Библиотеки TMSSQL: https://github.com/Tavalik/TMSSQL (отдельная статья)
- Библиотеки TRun1C: https://github.com/Tavalik/TRun1C
- Библиотеки TMail: https://github.com/Tavalik/TMail
- Библиотеки TLog: https://github.com/Tavalik/TLog
(все зависимые библиотеки устанавливаются автоматически при условии использования пакетного менеджера opm)
Работа с приложением
Запуск приложения осуществляется запуском файла Perezalivator_Run.bat. При первом запуске в текущем каталоге будет создан пустой файл настроек Perezalivator_Params.json.
Необходимо заполнить все параметры, описав возможные базы-источники, базы-назначения и параметры для отправки электронных писем.
Проверить корректность введенных настроек можно запустив файл Perezalivator_Run_Test.bat. Перезаливатор будет запущен в режиме тестирования настроек.
При следующем запуске файла Perezalivator_Run.bat откроется окно, в котором необходимо выбрать базу-источник
и базу-назначения.
Если необходимо, можно указать дату, на которую необходимо получить данные (всегда используется конец дня).
После указания всех исходных параметров, перезаливатор начнет работу по следующему алгоритму:
- Установка блокировки регламентных заданий и начала сеансов в базе-приемнике
- Завершение активных сеансов (спустя несколько минут) в базе-приемнике
- Расчет последовательности файлов резервных копий для базы-источника для восстановления на указанную дату
- Восстановление базы-приемника по найденной последовательности файлов
- Перевод базы-приемника в простую модель восстановления
- Сжатие файлов журнала транзакций базы-приемника
- Отключение базы-приемника от хранилища
- Подключение базы-приемника к хранилищу
- Обновление конфигурации базы данных базы-приемника
- Снятие блокировки начала сеансов базы-приемника
- Уведомление о результате по электронной почте
Если в базе-приемнике присутствуют активные соединения, будет показана таблица со всеми соединениями, а также будет предоставлена возможность завершить все активные сеансы.
Отработав, Перезаливатор выдаст соответствующее сообщение (или сообщение об ошибке), а также отправит сообщение о результате работы на электронную почту.
Заключение
Работаем с Перезаливатором уже больше года. Тот функционал, который был нам необходим, мы реализовали. Если будет интерес сообщества, возможно и дальнейшее развитие программы.
Кстати, есть еще как минимум 2 подобных проекта:
Спасибо за внимание.