мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
автотестирование_остановки_репликации [26.02.2020 10:35] |
автотестирование_остановки_репликации [26.02.2020 10:35] Анисютин |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Автотестирование остановки репликации ====== | ||
+ | |||
+ | Для синхронизации данных между базами данных используется процесс [[:Репликация|репликации]]\\ | ||
+ | В базе данных менеджера проектов фиксируются события связанные с выполнением репликаций, в частности, время начала выполнения репликации.\\ | ||
+ | Репликация выполняется часто, поэтому большой перерыв в выполнении репликации означает возникновение проблем с выполнением репликации.\\ | ||
+ | Своевременное восстановление репликации предотвращает возникновение коллизий данных. | ||
+ | |||
+ | ===== Реализация тестирования ===== | ||
+ | |||
+ | Пусть задан максимальный интервал паузы между репликациями (по умолчанию 3 часа).\\ | ||
+ | Если за это время репликация не выполнилась, то создается задача первой очереди с целью восстановления процесса репликации.\\ | ||
+ | Затем задачи будут создаваться раз в сутки до тех пор пока репликация не восстановится.\\ | ||
+ | |||
+ | ===== Настройки ===== | ||
+ | |||
+ | 1. В файле настроек AgentSettings.ini для агента обслуживающего "Менеджер проектов" в секции [AutoTest] настройка MaxPeriodReplMin, которая содержит максимальнодопустимый интервал паузы между репликациями в минутах (по умолчанию 180 мин);\\ | ||
+ | 2. В "Менеджере проектов" на форме **"Сервисы"** \ **"Репликация"** \\ | ||
+ | Открывается форма **"Отчет по репликации"** и на вкладке **"Отчет"** нужно включить настройку **"Проверять работу репликации (при обнаружении ошибки будет создаваться задача в Б24)"** \\ | ||
+ | {{:pasted:20200226-100317.png}}\\ | ||
+ | Поле **№ задачи** заполняется автоматически при тестировании.\\ | ||
+ | Если репликация работает, поле **№ задачи** пустое.\\ | ||
+ | При возникновении ошибки создается задача и ставится цифра 1. Если в течение суток проблема не решена, то создается повторная задача и номер увеличивается на единицу.\\ | ||
+ | |||
+ | ===== Макет задачи ===== | ||
+ | |||
+ | Заголовок: | ||
+ | Ошибка запуска репликации: Наименование клиента / Наименование подразделения (ПОВТОРНО) | ||
+ | Текст задачи: | ||
+ | ReplIn не запускался уже более 3 час. ! | ||
+ | ReplOut не запускался уже более 3 час. ! | ||
+ | | ||
+ | Наименование клиента | ||
+ | Наименование подразделения (Центр) | ||
+ | Дата и время проверки = 25.07.2016 20:05:27 | ||
+ | Дата и время последнего выполнения ReplIn = 25.07.2016 20:05:27 | ||
+ | Дата и время последнего выполнения ReplOut = 25.07.2016 20:05:27 | ||
+ | ID в client_repl_reps = 1294 | ||
+ | № копии задачи = 1 | ||
+ | | ||
+ | ==== Пример задачи ==== | ||
+ | |||
+ | Заголовок: | ||
+ | 1. Ошибка запуска репликации: РИКВЕСТ (Проф-Чистка №1) (Серпухов) / Центр | ||
+ | Текст задачи: | ||
+ | ReplIn не запускался уже более 2442 час. ! | ||
+ | | ||
+ | РИКВЕСТ (Проф-Чистка №1) (Серпухов) | ||
+ | Новый сервер (Центр) | ||
+ | Дата и время проверки = 03.12.2019 15:30:04 | ||
+ | Дата и время последнего выполнения ReplIn = 23.08.2019 21:03:53 | ||
+ | Дата и время последнего выполнения ReplOut = 03.12.2019 15:25:09 | ||
+ | ID в client_repl_reps = 1242 | ||
+ | № копии задачи = 1 | ||
+ | |||
+ | |||
+ | |||
+ | <ifauth @programmers> | ||
+ | |||
+ | ===== Схема выполнения процесса ===== | ||
+ | |||
+ | 1. При выполнении репликации в базе данных менеджера проектов PC.fdb в таблице client_repl_reps заполняются поля: | ||
+ | rep_dttm_in, rep_dttm_out - дата и время последнего выполнения ReplIn, ReplOut соответственно, которые отображаются в графах "Время отчета о загрузке" и "Время отчета об отправке" | ||
+ | |||
+ | 2. Агент обслуживающий "Менеджер проектов" | ||
+ | 2.1. при запуске считывает настройку из AgentSettings.ini из секции [AutoTest] MaxPeriodReplMin, которая содержит максимальнодопустимый интервал паузы между репликациями в минутах (по умолчанию 180 мин); | ||
+ | 2.2. один раз в час запускается автотест остановки репликации. | ||
+ | 2.2.1. в таблице client_repl_reps выбираются все записи с task_on=1; | ||
+ | 2.3.2. проверяется превышение интервала между выполнением репликации и текущим временем превышает максимальный интервал паузы между репликациями {(now-rep_dttm_in)>MaxPeriodRepl или (now-rep_dttm_out)>MaxPeriodRepl, где MaxPeriodRepl равняется MaxPeriodReplMin конвертированному в формат времени}, то создается задача первой очереди и ставится цифра 1 в поле task_num. | ||
+ | Если интервал превыше и в текущие сутки задача не создавалась, то \\ | ||
+ | создается задача на исправление репликации;\\ | ||
+ | в карточке репликации увеличивается на единицу "Номер задачи";\\ | ||
+ | в лог в таблице AT_Repl_Log добавляется запись, в которой содержится URL задачи в битрексе;\\ | ||
+ | 2.3. Если для активной задачи репликация восстановилась, то "Номер задачи" обнуляется, в логе делается запись о завершении задачи. | ||
+ | |||
+ | ===== Таблицы данных ===== | ||
+ | |||
+ | [[:sp_db_rep]]\\ | ||
+ | [[:client_repl_reps]]\\ | ||
+ | [[:at_repl_log]]\\ | ||
+ | |||
+ | </ifauth> | ||