
- •Распределение и тиражирование данных
- •Архитектура распределенной базы данных
- •Взаимодействие и автономность
- •Расширение модели клиент/сервер
- •Сети и системы распределенных баз данных
- •Сервисы базы данных и именование в распределенной базе данных
- •Связи баз данных
- •Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
- •Общие, частные и глобальные связи баз данных
- •Разделяемые связи баз данных
- •Неоднородные распределенные базы данных
- •Вызовы удаленных процедур (rpc)
- •Удаленные транзакции
- •Распределенные транзакции
- •Алгоритм двухфазного завершения Oracle
- •Прозрачность распределенной базы данных
- •Безопасность распределенной базы данных
- •Глобальные пользователи и роли
- •Введение в тиражирование данных
- •Польза тиражирования данных
- •Типы тиражирования данных
- •Базовое тиражирование и моментальные снимки "только для чтения"
- •Сложные моментальные снимки
- •Хранение информации моментальных снимков
- •Регенерация моментальных снимков
- •Виды регенерации моментальных снимков
- •Журналы моментальных снимков
- •Группы регенерации моментальных снимков
- •Автоматическая регенерация моментальных снимков
- •Автоматическая регенерация моментальных снимков и очереди заданий
- •Ручная регенерация моментальных снимков
- •Среды усовершенствованного тиражирования
- •Многоабонентское тиражирование
- •Узлы моментальных снимков и обновляемые моментальные снимки
- •Сравнение вариантов усовершенствованного тиражирования
- •Архитектура системы усовершенствованного тиражирования Объекты тиражирования и группы тиражирования
- •Основные узлы и узлы моментальных снимков
- •Каталоги тиражирования
- •Интерфейс прикладных программ управления тиражированием
- •Программные алгоритмы усовершенствованного тиражирования Oracle
- •Тиражирование на уровне строк
- •Асинхронное распространение данных
- •Принудительная рассылка отложенных транзакций в очереди
- •Уничтожение очереди отложенных транзакций
- •Последовательное и параллельное распространение
- •Уникальные алгоритмы распространения моментальных снимков
- •Конфликты тиражирования в системах усовершенствованного тиражирования
- •Типы конфликтов тиражирования
- •Предотвращение конфликтов
- •Распознавание и устранение конфликтов
- •Группы столбцов и методы устранения конфликтов
- •Другие варианты усовершенствованного тиражирования
- •Процедурное тиражирование
- •Распознавание конфликтов и процедурное тиражирование
- •Синхронное распространение данных
- •Конфликты тиражирования и синхронное тиражирование данных
Интерфейс прикладных программ управления тиражированием
Для конфигурирования и обслуживания среды усовершенствованного тиражирования 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 replication),называемое также тиражированием данных с промежуточным хранением(store-and-forward data replication),осуществляется следующим образом: когда приложение обновляет локальную тиражируемую копию таблицы, сервер создает и ставит в очередь соответствующую отложенную транзакцию, которая затем направляется им в другие узлы для тиражирования внесенного изменения. Ниже в этом разделе будет приведен пример асинхронного распространения данных.
Принудительная рассылка отложенных транзакций в очереди
Через запланированные интервалы времени узел принудительно рассылает, или выталкивает (pushes), отложенные транзакции в их очереди в другие узлы системы усовершенствованного тиражирования. Точнее, в основном узле можно запланировать принудительную рассылку отложенных транзакций в другие основные узлы системы (т.е. принудительную рассылку отложенных транзакций в разные основные узлы в разное время). В узле моментальных снимков требуется планировать принудительную рассылку отложенных транзакций и соответствующий основной узел.
Уничтожение очереди отложенных транзакций
После того как отложенная транзакция успешно разослана в узел-адресат, узел-источник помечает эту транзакцию как вытолкнутую (pushed).После запланированного интервала узел уничтожает (purges) в очереди псе успешно разосланные отложенные транзакции. Периодическое уничтожение очереди отложенных транзакций узла обеспечивает небольшой размер этой очереди.
Выталкивание отложенной транзакции в узел вовсе не означает успешного выполнения этой транзакции в удаленном узле. После того как отложенная транзакция принудительно разослана в узел, она может быть выполнена там с ошибками, вызванными конфликтами тиражирования или другими обстоятельствами.