Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / LEF / Распределение и тиражирование данных.doc
Скачиваний:
57
Добавлен:
16.04.2013
Размер:
165.89 Кб
Скачать

Последовательное и параллельное распространение

В Oracleнесколько отложенных транзакций могут быть переданы в удаленный узел последовательно или с помощью параллельной обработки данных. При последовательном распространении(serial propagation)Oracleасинхронно передает отложенные транзакции по очереди, в том же порядке их завершения, как и в узле-источнике. При параллельном распространении(parallel propagation)асинхронно передается несколько отложенных транзакций, что обеспечивает высокую производительность и экономное расходование ресурсов системы. О возможностях параллельной обработки вOracleболее подробно будет рассказано позже.

Уникальные алгоритмы распространения моментальных снимков

Обновляемые моментальные снимки должны как выталкивать изменения в основную таблицу, так и вытягивать (pull)их из основной таблицы. После того как приложение изменяет обновляемый момен­тальный снимок, узел этого моментального снимка асинхронно выталкивает соответствующие отложенные транзакции для обновления основной таблицы. Чтобы обновить тот же моментальный снимок, его узел регенерирует этот снимок как часть группы регенерации, вытягивая изменения, сделанные в основной таблице.

Пример

Как было показано выше, каждый основной узел или узел моментальных снимков в системе усовершенствованного тиражиро­вания Oracle8 использует очень большое число внутренних объектов и алгоритмов системы, чтобы разрешить тиражирование на уровне строк с асинхронным распространением данных. Рассмотрим взаимодействие представленных выше алгоритмов на следующем примере;

  1. Приложение изменяет строку в обновляемом моментальном снимке при помощи оператора UPDATE.

  2. В узле моментального снимка активизируется внутренний триггер, фиксирующий информацию об обновлении моментального снимка.

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

  4. Узел моментального снимка сохраняет RPC(вызов удаленной процедуры), созданный внутренним триггером, в очереди отложенных транзакций узла.

  5. Узел моментального снимка генерирует дополнительные вызовы RPC при внесении новых изменений. В Oracleтакже хранится информация, очерчивающая границы транзакций, так что информация тиражирования может направляться в удаленные узлы в форме одинаковых транзакций.

  6. Через запланированные интервалы времени узел моментального снимка выталкивает отложенные транзакции в их очередь в основном узле.

  7. Через запланированные интервалы времени узел моментального снимка уничтожает в очереди все успешно вытолкнутые отложенные транзакции.

  8. Через запланированные интервалы времени узел моментального снимка регенерирует моментальный снимок с помощью информации основного узла.

Конфликты тиражирования в системах усовершенствованного тиражирования

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

Соседние файлы в папке LEF