Перейти к основному содержимому

Перезапуск графа репликации с позиции с помощью технической таблицы

Перезапускать репликацию могут пользователи с правами 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 из технической таблицы:

  1. Откройте на стенде вкладку Соединения.

  2. Выберите соединение Target, нажмите значок Соединения, Значок карандаша рядом с названием соединения и выберите Редактировать в открывшемся меню.

    Графы репликации, Перезапуск графа

  3. Пропишите "apply_position_schema" : "<имя_схемы>" в поле Опции в открывшемся окне Редактирование свойств соединения.

    Графы репликации, Перезапуск графа

    подсказка

    Если не указать имя схемы, содержащей техническую таблицу, воркер применителя будет искать техническую таблицу в схеме с именем grdl.

    Если техническая таблица находится в схеме с именем grdl, имя схемы в поле Опции можно не прописывать. Если техническая таблица в схеме с другим именем и в поле Опции имя этой схемы не указано, воркер применителя не найдет техническую таблицу, и участвовать в репликации таблица не будет.

  4. Нажмите Сохранить.

  5. Откройте вкладку Графы репликации и запустите граф.

    Теперь GraDeLyID, идентификатор последней примененной транзакции, записывается в техническую таблицу.

  6. Для перезапуска графа после остановки выберите модуль применителя на схеме графа, который нужно перезапустить.

    Соединения, Редактирование модуля

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

    Соединения, Редактирование модуля

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

Результат​

Репликация возобновилась. Граф работает.