Перезапуск графа репликации с позиции с помощью технической таблицы#
Перезапускать репликацию могут пользователи с правами APPADMIN и APPDUTY.
Для перезапуска графа репликации с позиции GraDeLy использует собственный идентификатор транзакций GraDeLyID. Идентификатор записывается в Kafka в столбцы key и value, в столбец trx_id технической таблицы, если создана и участвует в репликации.
Чтобы гарантировать корректный перезапуск модуля GraDeLy, в базе данных создается техническая таблица $GRADELY_APPLY_POSITION$, содержащая GraDeLyID, идентификатор последней примененной транзакции. Таблица содержит единственную строку уникального SourceID, значение в которой обновляется после каждой выполненной транзакции.
Столбцы таблицы:
thread_id — идентификатор строки;
source_id — идентификатор строки и БД источника (первичный ключ), с которого пришла транзакция;
trx_id — идентификатор транзакции GraDeLyID;
internal_id — идентификатор, формируемый источником: в PostgreSQL это lsn, в Oracle — CommitSCN.
Как создать техническую таблицу описано в «Руководстве по установке», разделе «Установка» → «Порядок установки», пункт 12.
Последовательность выполнения#
Для перезапуска графа с GraDeLyID из технической таблицы:
Откройте на стенде вкладку Соединения.
Выберите соединение Target и нажмите значок
рядом с названием соединения и выберите Редактировать в открывшемся меню.Пропишите
"apply_position_schema" : "{имя_схемы}"в поле Опции в открывшемся окне Редактирование свойств соединения.Если не указать имя схемы, содержащей техническую таблицу, воркер применителя будет искать техническую таблицу в схеме с именем public.
Если техническая таблица находится в схеме с именем public, имя схемы в поле Опции можно не прописывать. Если техническая таблица в схеме с другим именем и в поле Опции имя этой схемы не указано, воркер применителя не найдет техническую таблицу, и участвовать в репликации таблица не будет.
Нажмите Сохранить.
Откройте вкладку Графы репликации и запустите граф.
Теперь GraDeLyID, идентификатор последней примененной транзакции, записывается в техническую таблицу.
Для перезапуска графа после остановки выберите модуль применителя на схеме графа, который нужно перезапустить.
Нажмите
в открывшемся окне Модуль.Репликация запустится с последнего записанного в техническую таблицу значения GraDeLyID + 1.
Результат#
Репликация возобновилась. Граф работает.



