Перезапуск графа репликации с позиции с помощью технической таблицы
Перезапускать репликацию могут пользователи с правами 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.
Как создать техническую таблицу описано в разделе Подготовка окружения воркеров документа Руководство по установке.
Последовательность выполнения
Для перезапуска графа с GraDeLyID из технической таблицы:
-
Откройте на стенде вкладку Соединения.
-
Выберите соединение Target, нажмите значок
рядом с названием соединения и выберите Редактировать в открывшемся меню.

-
Пропишите
"apply_position_schema" : "<имя_схемы>"в поле Опции в открывшемся окне Редактирование свойств соединения.
подсказкаЕсли не указать имя схемы, содержащей техническую таблицу, воркер применителя будет искать техническую таблицу в схеме с именем grdl.
Если техническая таблица находится в схеме с именем grdl, имя схемы в поле Опции можно не прописывать. Если техническая таблица в схеме с другим именем и в поле Опции имя этой схемы не указано, воркер применителя не найдет техническую таблицу, и участвовать в репликации таблица не будет.
-
Нажмите Сохранить.
-
Откройте вкладку Графы репликации и запустите граф.
Теперь GraDeLyID, идентификатор последней примененной транзакции, записывается в техническую таблицу.
-
Для перезапуска графа после остановки выберите модуль применителя на схеме графа, который нужно перезапустить.

-
Нажмите
в открывшемся окне Модуль.

Репликация запустится с последнего записанного в техническую таблицу значения GraDeLyID + 1.
Результат
Репликация возобновилась. Граф работает.