Репликация данных в Oracle

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

Я пробовал материализованное представление Oracle, но все еще не понимаю, использую ли я Fast Refresh или Complete Refresh. Мне нужно, чтобы все вновь вставленные строки реплицировались в одной транзакции.

Есть ли лучший подход для этого? Любая помощь будет высоко ценится.

Спасибо.


person Umair Ansari    schedule 27.06.2016    source источник
comment
Вы хотите сделать это для одной таблицы или целого набора таблиц. Когда вы говорите, что хотите вставить реплицированные строки в одну транзакцию, что именно вы имеете в виду. Вы хотите вставлять через определенные промежутки времени. Кроме того, когда вы говорите, что хотите выполнить репликацию впоследствии, означает ли это, что вы не хотите репликации данных почти в реальном времени. Кроме того, какова точная цель этой репликации (вы создаете сайт аварийного восстановления?, будут ли пользователи запрашивать данные доступа для целей отчетности.   -  person phonetic_man    schedule 27.06.2016


Ответы (1)


Быстрое обновление копирует добавочные изменения по сети, но требует, чтобы журнал материализованного представления был создан на главном сайте в исходной таблице. Это добавляет некоторые накладные расходы на вставки, происходящие в главной таблице, но в целом делает обновление более эффективным.

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

Oracle предоставляет множество технологий репликации данных — материализованные представления являются самыми старыми и, вероятно, наименее эффективными, но их относительно просто настроить. Потоки — это более новая технология, которая имеет гораздо меньшие накладные расходы, но ее немного сложнее настроить. Сегодня Golden Gate является предпочтительной технологией репликации, но требует дополнительных затрат на лицензирование.

person Justin Cave    schedule 27.06.2016
comment
Спасибо за Ваш ответ. Материализованное представление создается из другого представления в базе данных master, и это представление создается комбинацией нескольких таблиц. Мы не хотим вести журналы для каждой задействованной таблицы. Полное обновление менее эффективно, я думаю, потому что нам нужно часто получать запись (каждую секунду). Я сделал это с помощью планировщика, написав ниже запрос. INSERT INTO ARIX_FOO F_FOO (SELECT L_FOO.ID , L_FOO.BAR FROM ARIX_FOO@link L_FOO where L_FOO.ID > (SELECT NVL(MAX(ID),0) FROM ARIX_FOO)); Есть ли другой способ сделать это эффективно? - person Umair Ansari; 27.06.2016
comment
@UmairAnsari - это вряд ли сработает, если только нет однопоточного процесса, вставляющего данные в исходную базу данных. Что произойдет, если значение id 2 будет зафиксировано непосредственно перед значением id 1? Вы можете увидеть 2 и никогда не увидеть 1. Похоже, вам может понадобиться дополнительная сложность любого из потоков GoldenGate. - person Justin Cave; 27.06.2016