- •Распределение и тиражирование данных
- •Архитектура распределенной базы данных
- •Взаимодействие и автономность
- •Расширение модели клиент/сервер
- •Сети и системы распределенных баз данных
- •Сервисы базы данных и именование в распределенной базе данных
- •Связи баз данных
- •Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
- •Общие, частные и глобальные связи баз данных
- •Разделяемые связи баз данных
- •Неоднородные распределенные базы данных
- •Вызовы удаленных процедур (rpc)
- •Удаленные транзакции
- •Распределенные транзакции
- •Алгоритм двухфазного завершения Oracle
- •Прозрачность распределенной базы данных
- •Безопасность распределенной базы данных
- •Глобальные пользователи и роли
- •Введение в тиражирование данных
- •Польза тиражирования данных
- •Типы тиражирования данных
- •Базовое тиражирование и моментальные снимки "только для чтения"
- •Сложные моментальные снимки
- •Хранение информации моментальных снимков
- •Регенерация моментальных снимков
- •Виды регенерации моментальных снимков
- •Журналы моментальных снимков
- •Группы регенерации моментальных снимков
- •Автоматическая регенерация моментальных снимков
- •Автоматическая регенерация моментальных снимков и очереди заданий
- •Ручная регенерация моментальных снимков
- •Среды усовершенствованного тиражирования
- •Многоабонентское тиражирование
- •Узлы моментальных снимков и обновляемые моментальные снимки
- •Сравнение вариантов усовершенствованного тиражирования
- •Архитектура системы усовершенствованного тиражирования Объекты тиражирования и группы тиражирования
- •Основные узлы и узлы моментальных снимков
- •Каталоги тиражирования
- •Интерфейс прикладных программ управления тиражированием
- •Программные алгоритмы усовершенствованного тиражирования Oracle
- •Тиражирование на уровне строк
- •Асинхронное распространение данных
- •Принудительная рассылка отложенных транзакций в очереди
- •Уничтожение очереди отложенных транзакций
- •Последовательное и параллельное распространение
- •Уникальные алгоритмы распространения моментальных снимков
- •Конфликты тиражирования в системах усовершенствованного тиражирования
- •Типы конфликтов тиражирования
- •Предотвращение конфликтов
- •Распознавание и устранение конфликтов
- •Группы столбцов и методы устранения конфликтов
- •Другие варианты усовершенствованного тиражирования
- •Процедурное тиражирование
- •Распознавание конфликтов и процедурное тиражирование
- •Синхронное распространение данных
- •Конфликты тиражирования и синхронное тиражирование данных
Распознавание конфликтов и процедурное тиражирование
Когда применяется процедурное тиражирование, процедуры, тиражирующие данные, несут ответственность за обеспечение их целостности. Таким образом, необходимо разрабатывать эти процедуры либо для того, чтобы избегать конфликтов тиражирования, либо для того, чтобы эти конфликты распознавать и устранять. Поэтому процедурное тиражирование используется чаще всего тогда, когда базы данных доступны только для обработки больших пакетных операций. При этом конфликты тиражирования маловероятны, так как многочисленные транзакции не конфликтуют из-за одних и тех же данных.
Синхронное распространение данных
Асинхронное распространение данных является нормальной конфигурацией для систем усовершенствованного тиражирования, использующих многоабонентское тиражирование или тиражирование узлов моментальных снимков. Однако в Oracleподдерживается также синхронное распространение данных(synchronous data propagation) –аналог распределенных транзакций, так как все тиражируемые копии обновляются в реальном времени(real-time).Когда приложение обновляет локальную тиражируемую копию таблицы синхронно, узел, обслуживающий эту копию, координирует операции обновления всех других тиражируемых копий той же таблицы и выполняет эти операции как часть той же самой транзакции.
Практически всегда асинхронное распространение данных является наилучшим выбором для систем усовершенствованного тиражирования. Синхронное тиражирование полезно только тогда, когда приложения требуют, чтобы тиражируемые данные были постоянно синхронизированы.
Для поддержания синхронного распространения данных в Oracle8 применяются внутренние триггеры баз данных, генерирующие вызовы RPC, которые тиражируют изменения на уровне данных в другие узлы тиражирования. Однако в этом случаеOracleне откладывает выполнение вызовов RPC, а обрабатывает их как часть той же транзакции, которая модифицирует локальную тиражируемую копию. Поэтому необходимо, чтобы изменение на уровне данных было возможно во всех узлах, обслуживающих тиражируемую таблицу; иначе будет выполнен откат этой транзакции. Таким образом, системы тиражирования с синхронным распространением данных очень сильно зависят от работоспособности системы и сети. Они могут функционировать только в том случае, когда одновременно доступны все узлы системы.
Конфликты тиражирования и синхронное тиражирование данных
При синхронном распространении информации тиражирования конфликты тиражирования невозможны. В среде тиражирования реального времени приложения для одновременного обновления всех тиражируемых копий таблицы используют распределенные транзакции. Как и в средах нераспределенных баз данных, алгоритмы параллельности работы Oracle(а именно блокировки строк) не допускают негативного влияния одних транзакций на другие.
Итоги
В этом разделе было рассказано о средствах Oracle, используемых для соединения нескольких независимых баз данных в одну глобальную систему распределенной базы данных. Кроме того, было объяснено, как использовать моментальные снимки таблиц и такие средства усовершенствованного тиражирования, как многоабонентское тиражирование и обновляемые моментальные снимки для работы с тиражируемыми данными в базах данных распределенной системы.