Как извлечь данные из нескольких баз данных и реплицировать в одну базу данных, имеющую различную структуру таблиц, с помощью Oracle Goldengate? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть 6 таблиц для извлечения данных из каждой из 4 баз данных. Я должен скопировать все эти данные в 6 таблиц одной базы данных. Целевые таблицы имеют только один дополнительный столбец «instance_id», который показывает, что мы получаем данные из какой базы данных. Теперь у меня есть один процесс извлечения для каждой базы данных и 4 процесса репликации в целевой базе данных. Я хочу обновить столбец instance_id автоматически, как только строка будет введена в таблицу назначения с использованием репликации OGG. Я знаю, что есть оператор SQLEXEC, который может запускать SQL-запросы в OGG. Я не знаю, где и как использовать это, чтобы решить мою проблему здесь.

1 Ответ

0 голосов
/ 19 сентября 2018

Если у вас есть 4 источника, у вас есть 4 набора файлов следов и 4 реплики. В репликах включите ваш instance_id в столбец MAP. Также - если получение данных из 4 источников вызовет конфликты первичного ключа, вам нужно будет включить instance_id в определение PK. Будет выглядеть примерно так:
MAP schema.table, TARGET schema.table,
COLMAP (USEDEFAULTS, instance_id = 1),
KEYCOLS (pkcol, instance_id);

...