GoldenGate Replicat не помещает все столбцы после

#oracle12c #oracle-golden-gate

#oracle12c #oracle-golden-gate

Вопрос:

У меня настроен процесс Replicat GoldenGate for Oracle (123015) для получения изменений из базы данных Oracle 12c.

Я могу получить все изменения ВСТАВКИ / ОБНОВЛЕНИЯ / удаления в файлах отслеживания. Однако во время операции ОБНОВЛЕНИЯ раздел After записи в файле отслеживания включает только столбцы, которые были изменены.

Согласно документации, если

  1. В базе данных включено ПРИНУДИТЕЛЬНОЕ ВЕДЕНИЕ ЖУРНАЛА и ДОПОЛНИТЕЛЬНЫЕ ДАННЫЕ ЖУРНАЛА ДЛЯ ВСЕХ СТОЛБЦОВ,
  2. Файл параметров ИЗВЛЕЧЕНИЯ в GoldenGate включает параметры LOGALLSUPCOLS и UPDATERECORDFORMAT FULL,

раздел записи AFTER должен содержать все столбцы, но это не так : (

Ответ №1:

Чтобы не полагаться на документацию. Проведите несколько собственных тестов. Пожалуйста, ознакомьтесь с полным объяснением, что именно процесс извлечения GoldenGate 12.3 записывает в трассировку.

Комментарии:

1. Я перешел по ссылке и перепробовал все случаи, но все еще не смог получить все столбцы в разделе «После». В любом случае, я каким-то образом заставил это работать, сравнивая ключи / значения между разделами «до» и «после».

Ответ №2:

Вам нужно использовать GETUPDATEBEFORES, чтобы получить изображение записей обновления до:

https://docs.oracle.com/en/middleware/goldengate/core/19.1/reference/getupdatebefores-ignoreupdatebefores.html#GUID-3CA51C08-8D8C-4CD5-AEB2-E0DFEF1B6BF7

Ответ №3:

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

ALTER PLUGGABLE DATABASE ORCLPDB ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;