Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Golden gate, репликация по маске / 7 сообщений из 7, страница 1 из 1
19.02.2019, 21:22
    #39776470
galagea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
Доброе время суток!
Есть вопрос по Golden Gate , есть работающий репликат
В репликате прописаны таблички по маске, к примеру , (репликация идет в одноименную схему и одноименные таблицы, что на источнике, что на преемнике)
MAP SCHEMA.*,target SCHEMA.* colmap (USEDEFAULTS) ,TREADRANGE (1-10);

Появилась необходимость на источнике -часть табличек, штук 400 переименовать, сделав их с одинаковым префиксом, например REF_[название таблички], но на приемнике оставить прежнее название. Дописала дополнительно в репликате каждую табличку , например,
MAP SCHEMA.REF_TABLE1,target SCHEMA.TABLE1 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
MAP SCHEMA.REF_TABLE2,target SCHEMA.TABLE2 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
И тд
Но первое условие по маске перекрывает второе, те репликат падает , потому что именно ищет табличку с префиксом REF_ на преемнике и не находит, когда по табличке проходят dml операция , соответсвенно сваливается. Подскажите, пожалуйста, как корректно прописать условие для репликата, чтобы оставить одноименную маску ( потому как настроена ddl репликация, создается табличка на приемнике, если в экстракте она не попадает в исключение, то зеркально табличка создается на источнике)- поэтому маска очень удобна, но и при этом необходимо, чтобы работала репликация таблиц с источника с префиксом REF_, как прописано выше. Спасибо.
...
Рейтинг: 0 / 0
19.02.2019, 22:01
    #39776483
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
galageaДоброе время суток!
Есть вопрос по Golden Gate , есть работающий репликат
В репликате прописаны таблички по маске, к примеру , (репликация идет в одноименную схему и одноименные таблицы, что на источнике, что на преемнике)
MAP SCHEMA.*,target SCHEMA.* colmap (USEDEFAULTS) ,TREADRANGE (1-10);

Появилась необходимость на источнике -часть табличек, штук 400 переименовать, сделав их с одинаковым префиксом, например REF_[название таблички], но на приемнике оставить прежнее название. Дописала дополнительно в репликате каждую табличку , например,
MAP SCHEMA.REF_TABLE1,target SCHEMA.TABLE1 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
MAP SCHEMA.REF_TABLE2,target SCHEMA.TABLE2 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
И тд
Но первое условие по маске перекрывает второе, те репликат падает , потому что именно ищет табличку с префиксом REF_ на преемнике и не находит, когда по табличке проходят dml операция , соответсвенно сваливается. Подскажите, пожалуйста, как корректно прописать условие для репликата, чтобы оставить одноименную маску ( потому как настроена ddl репликация, создается табличка на приемнике, если в экстракте она не попадает в исключение, то зеркально табличка создается на источнике)- поэтому маска очень удобна, но и при этом необходимо, чтобы работала репликация таблиц с источника с префиксом REF_, как прописано выше. Спасибо.

Раз у части таблиц на источнике изменились имена то для всех таблиц без исключения надо добавлять строку маппинга, а общий маппинг для всей схемы убрать. Думаю что DDL'и для таблиц REF будут падать, т.к. на приемнике таких таблиц нет.
...
Рейтинг: 0 / 0
19.02.2019, 23:21
    #39776496
galagea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
Конечно, это тривиальное решение-прописать все таблицы, но, к сожалению, по разным причинам не очень удобно, поэтом я и спросила, возможно ли условие , в документации https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/gg_parameters160.htm#GWURF546
нашла пример, но не совсем понятно как MAPEXCEPTION отрабатывает
MAP src.trx*, TARGET trg.*,
MAPEXCEPTION (TARGET fin.trxexceptions,
INSERTALLRECORDS,
COLMAP (USEDEFAULTS,
ACCT_NO = ACCT_NO,
OPTYPE = @GETENV ('LASTERR', 'OPTYPE'),
DBERR = @GETENV ('LASTERR', 'DBERRNUM'),
DBERRMSG = @GETENV ('LASTERR', 'DBERRMSG')
)
);
...
Рейтинг: 0 / 0
19.02.2019, 23:57
    #39776502
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
...
Рейтинг: 0 / 0
20.02.2019, 07:11
    #39776542
galagea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
Скорее всего exclude тоже не подойдет, вообще исключится репликация по табличке, все-таки остается перечисление полного списка...Спасибо
...
Рейтинг: 0 / 0
20.02.2019, 18:05
    #39776889
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
galageaСкорее всего exclude тоже не подойдет
Ну блин...
Код: plsql
1.
2.
3.
4.
5.
MAP SCHEMA.*,target SCHEMA.* colmap (USEDEFAULTS) ,TREADRANGE (1-10);
EXCLUDEWILDCARDOBJECTSONLY
MAPEXCLUDE SCHEMA.REF_*
MAP SCHEMA.REF_TABLE1,target SCHEMA.TABLE1 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
MAP SCHEMA.REF_TABLE2,target SCHEMA.TABLE2 colmap (USEDEFAULTS) ,TREADRANGE (1-10);
...
Рейтинг: 0 / 0
17.03.2019, 16:57
    #39787341
galagea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Golden gate, репликация по маске
andrey_anonymous,
Спасибо, попробуем
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Golden gate, репликация по маске / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]