«Перезаліватор» – додаток для автоматизації «перезаливання» баз

0. ВІДЕОінструкція

Про причини і контексті створення цього додатка, ви можете дізнатися з наведеного нижче 20-ти хвилинного відео. У ньому також докладно розбирається процес установкинастройки і експлуатації Перезаліватора.

1. Опис

Під словом «перезаліть» розуміється процедура відновлення однієї бази даних (База призначення) з резервних копій іншої бази даних (База джерело). Наприклад, якщо необхідно завантажити дані з бази продуктивний в тестову або разработочной.

Перезаліватор дозволяє максимально автоматизувати процес «перезаливання» баз даних 1С: Підприємства.

Реалізовано на OneScript (). Для роботи необхідний OneScript версії 1.0.20 або вище.

Код відкритий, сторінка проекту на GitHub: https://github.com/Tavalik/Perezalivator

Є GUI-інтерфейс для вибору бази-приймача і бази-призначення, а також вікно з висновком результату.

2. Встановлення

  1. встановити OneScript (Детально про установку і настройку можна дізнатися, наприклад, тут).
  2. Завантажити файл «Distr \ Perezalivator-<версія>.ospx » (посилання)
  3. Запустити установку за допомогою пакетного менеджера opm

opm install <Шлях до файлу Perezalivator-<версія>.ospx>

Можна також скористатися командним файлом «Install.bat» з директорії «Distr»

Залежить від:

(Всі залежні бібліотеки встановлюються автоматично за умови використання пакетного менеджера opm)

3. Робота з додатком

Запуск програми здійснюється запуском файлу Perezalivator_Run.bat. При першому запуску в поточному каталозі буде створено порожній файл настройок Perezalivator_Params.json.

Необхідно заповнити всі параметри, описавши можливі бази-джерела, бази-призначення і параметри для відправки електронних листів.

Перевірити коректність введених налаштувань можна запустивши файл Perezalivator_Run_Test.bat. Перезаліватор буде запущений в режимі тестування налаштувань.

“Джерела”
  
“Ім’я” “Бухгалтерія (робоча)”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Acc_Work”
“Ім’я” “ЗУП (робоча)”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Work”
“Приймачі”
  
“Ім’я” “Загальна тестова №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “Test1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща”
“ІмяПользователяХраніліща”
“ПарольПользователяХраніліща”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Test1”
“Ім’я” “Загальна тестова №2”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “Test2”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща”
“ІмяПользователяХраніліща”
“ПарольПользователяХраніліща”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Test2”
“Ім’я” “ЗУП – Тестова №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Test1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “test1”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Test1”
“Ім’я” “ЗУП – озроблювальна №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Dev1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “dev1”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Dev1”
“Ім’я” “ЗУП – озроблювальна №2”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Dev2”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “dev2”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Dev2”
“Електронна пошта”
  
“НастройкіSMTP”
   
“АдресSMTP” “smtp.ya.ru”
“ПортSMTP”
“ПользовательSMTP” “postname_from@yandex.ru”
“ПарольSMTP” “Pass123_Mail”
“ІспользоватьSSL”
“ПолучателіСообщеній”
   
“АдресЕлектроннойПочтиПолучателя” “postname_to1@yandex.ru; postname_to2@yandex.ru;”

При наступному запуску файлу Perezalivator_Run.bat відкриється вікно, в якому необхідно вибрати базу-джерело

і базу-призначення.

Якщо необхідно, можна вказати дату, на яку необхідно отримати дані (завжди використовується кінець дня).

Після вказівки всіх вихідних параметрів, перезаліватор почне роботу за наступним алгоритмом:

  1. Установка блокування регламентних завдань і початку сеансів в базі-приймачі
  2. Завершення активних сеансів (через кілька хвилин) в базі-приймачі
  3. Розрахунок послідовності файлів резервних копій для бази-джерела для відновлення на зазначену дату
  4. Відновлення бази-приймача по знайденої послідовності файлів
  5. Переклад бази-приймача в просту модель відновлення
  6. Стиснення файлів журналу транзакцій бази-приймача
  7. Відключення бази-приймача від сховища
  8. Підключення бази-приймача до сховища
  9. Оновлення конфігурації бази даних бази-приймача
  10. Розблокування початку сеансів бази-приймача
  11. Повідомлення про результат по електронній пошті

Якщо в базі-приймачі присутні активні сполуки, буде показана таблиця з усіма сполуками, а також буде надана можливість завершити всі активні сеанси.

Відпрацювавши, Перезаліватор видасть відповідне повідомлення (або повідомлення про помилку), а також відправить повідомлення про результат роботи на електронну пошту.

4. Висновок

Працюємо з Перезаліватором вже більше року. Той функціонал, який був нам необхідний, ми реалізували. Якщо буде інтерес спільноти, можливо і подальший розвиток програми.

До речі, є ще як мінімум 2 подібні проекти:

Дякуємо за увагу.

Ссылка на основную публикацию