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

Интерфейс прикладных программ управления тиражированием

Для конфигурирования и обслуживания среды усовершенствован­ного тиражирования Oracle8 применяется набор модульных процедур и функций, который автоматически инсталлируется в словаре данных каждого сервера. В совокупности эти модули программ PL/SQLназываются интерфейсом прикладных программOracleдля управления тиражированием(replication management application programming interface (API)).

Программные алгоритмы усовершенствованного тиражирования Oracle

В Oracleприменяется множество внутренних программных алгоритмов, управляющих тиражированием информации в среде усовершенствованного тиражирования. Далее будет рассказано о том, как при помощи тиражирования на уровне строк с асинхронным распространением данных информация объектов объединяется в группах тиражирования.

Тиражирование на уровне строк

При тиражировании на уровне строк (row-level replication)приложения для модификации строк локальных таблиц используют базовые операторыDML(INSERT,UPDATEиDELETE). Когда транзакции изменяют строки таблицы, сервер, обслуживающий эту таблицу, автоматически записывает информацию о сделанных модификациях, а затем ставит в очередь соответствующие отложенные транзакции(deferred transactions),чтобы тиражировать локальные изменения в удаленные узлы, работающие с теми же данными.

Чтобы поддерживать тиражирование на уровне строк, нужно создать один или несколько базовых объектов, которые будут работать с каждым тиражируемым объектом. Например, для тиражируемой таблицы создается два внутренних модуля PL/SQLи несколько внутренних триггеров, используемых сервером для тиражирования и постановки в очередь отложенных транзакций, которые будут работать с таблицей и устранять конфликты во время тиражирования таблицы.

Асинхронное распространение данных

В типичной конфигурации усовершенствованного тиражирования на уровне строк данные передаются при помощи асинхронного тиражиро­вания. Асинхронное тиражирование данных (asynchronous data replica­tion),называемое также тиражированием данных с промежуточным хранением(store-and-forward data replication),осуществляется следую­щим образом: когда приложение обновляет локальную тиражируемую копию таблицы, сервер создает и ставит в очередь соответствующую отложенную транзакцию, которая затем направляется им в другие узлы для тиражирования внесенного изменения. Ниже в этом разделе будет приведен пример асинхронного распространения данных.

Принудительная рассылка отложенных транзакций в очереди

Через запланированные интервалы времени узел принудительно рассылает, или выталкивает (pushes), отложенные транзакции в их очереди в другие узлы системы усовершенствованного тиражирования. Точнее, в основном узле можно запланировать принудительную рассылку отложенных транзакций в другие основные узлы системы (т.е. принудительную рассылку отложенных транзакций в разные основные узлы в разное время). В узле моментальных снимков требуется планировать принудительную рассылку отложенных транзакций и соответствующий основной узел.

Уничтожение очереди отложенных транзакций

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

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