
- •Распределение и тиражирование данных
- •Архитектура распределенной базы данных
- •Взаимодействие и автономность
- •Расширение модели клиент/сервер
- •Сети и системы распределенных баз данных
- •Сервисы базы данных и именование в распределенной базе данных
- •Связи баз данных
- •Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя
- •Общие, частные и глобальные связи баз данных
- •Разделяемые связи баз данных
- •Неоднородные распределенные базы данных
- •Вызовы удаленных процедур (rpc)
- •Удаленные транзакции
- •Распределенные транзакции
- •Алгоритм двухфазного завершения Oracle
- •Прозрачность распределенной базы данных
- •Безопасность распределенной базы данных
- •Глобальные пользователи и роли
- •Введение в тиражирование данных
- •Польза тиражирования данных
- •Типы тиражирования данных
- •Базовое тиражирование и моментальные снимки "только для чтения"
- •Сложные моментальные снимки
- •Хранение информации моментальных снимков
- •Регенерация моментальных снимков
- •Виды регенерации моментальных снимков
- •Журналы моментальных снимков
- •Группы регенерации моментальных снимков
- •Автоматическая регенерация моментальных снимков
- •Автоматическая регенерация моментальных снимков и очереди заданий
- •Ручная регенерация моментальных снимков
- •Среды усовершенствованного тиражирования
- •Многоабонентское тиражирование
- •Узлы моментальных снимков и обновляемые моментальные снимки
- •Сравнение вариантов усовершенствованного тиражирования
- •Архитектура системы усовершенствованного тиражирования Объекты тиражирования и группы тиражирования
- •Основные узлы и узлы моментальных снимков
- •Каталоги тиражирования
- •Интерфейс прикладных программ управления тиражированием
- •Программные алгоритмы усовершенствованного тиражирования Oracle
- •Тиражирование на уровне строк
- •Асинхронное распространение данных
- •Принудительная рассылка отложенных транзакций в очереди
- •Уничтожение очереди отложенных транзакций
- •Последовательное и параллельное распространение
- •Уникальные алгоритмы распространения моментальных снимков
- •Конфликты тиражирования в системах усовершенствованного тиражирования
- •Типы конфликтов тиражирования
- •Предотвращение конфликтов
- •Распознавание и устранение конфликтов
- •Группы столбцов и методы устранения конфликтов
- •Другие варианты усовершенствованного тиражирования
- •Процедурное тиражирование
- •Распознавание конфликтов и процедурное тиражирование
- •Синхронное распространение данных
- •Конфликты тиражирования и синхронное тиражирование данных
Сложные моментальные снимки
Когда в определяющем запросе моментального снимка содержится сложный запрос, включающий функцию отличия или агрегирования, группировку, соединение, сложные подзапросы или операцию SET, такой моментальный снимок называется сложным моментальным снимком(complex snapshot).Например, с помощью следующего оператораCREATESNAPSHOTсоздается сложный моментальный снимок, так как в нем соединяется информация двух удаленных основных таблиц:
CREATE SNAPSHOT sales.order_items AS
SELECT i.id lineid, p.description, i.quantity,
p.unitprice, i.total
FROM sales.items@central.compworld i,
sales.parts@central.compworld p
WHERE i.part_id = p.id;
Применять сложные моментальные снимки не рекомендуется, так как Oracleне способен их быстро регенерировать. В результатеOracleвынужден выполнять полную регенерацию моментальных снимков, а это может привести к переизбытку данных в сети и снижению общей производительности системы.
Хранение информации моментальных снимков
В действительности моментальный снимок таблицы - это несколько объектов схемы, представляющих единое целое. Когда создается новый моментальный снимок “только для чтения”, Oracleсоздает базовую таблицу для хранения содержащейся в нем информации, индекс для первичного ключа базовой таблицы и представление “только для чтения” базовой таблицы, — представление получает то же имя, что и моментальный снимок, и обеспечивает к нему доступ.
Регенерация моментальных снимков
Когда создается новый моментальный снимок, Oracleобрабатывает его определяющий запрос и заполняет моментальный снимок данными основной таблицы. Впоследствии данные моментального снимка не всегда отражают текущее состояние его основной таблицы - транзакции могут в любой момент обновить информацию этой таблицы. Для того чтобы поддерживать относительное соответствие данных моментального снимка и данных его основной таблицы, можно задать конфигурацию моментального снимка так, чтобы его данные периодически регенерировались (освежались). Во время регенерации моментального снимка(snapshot refresh)Oracleприводит в соответствие моментальный снимок и его основную таблицу.
Виды регенерации моментальных снимков
В Oracleсуществуют два способа регенерации моментальных снимков: полная и быстрая. Когда моментальный снимок конфигурируется для полной регенерации(complete refresh),сервер, обслуживающий этот моментальный снимок, просто выполняет его определяющий запрос. Полная регенерация может выполняться для моментального снимка любого типа. Для полной регенерации результирующее множество определяющего запроса замещает текущие данные в базовой таблице моментального снимка. При большом объеме основной таблицы полная регенерация может привести к переизбытку информации в сети и будет выполняться очень долго.
Быстрая регенерация моментального снимка обычно более эффективна, чем полная. Чтобы выполнить быструю регенерацию (fast refresh),сервер моментального снимка определяет, какие изменения произошли в основной таблице со времени последней регенерации моментального снимка, а затем записывает в моментальный снимок только эти изменения. При быстрой регенерации запрашивается подмножество данных основной таблицы. Однако такой тип регенерации разрешается только тогда, когда основная таблица имеет журнал моментальных снимков. Более подробно о таких журналах рассказывается в следующем разделе.
В Oracleрегенерация моментальных снимков происходит в рамках групп регенерации. По умолчаниюOracleвыполняет быструю регенерацию каждого моментального снимка группы. Если сервер моментального снимка не может выполнить быструю регенерацию, то осуществляется полная регенерация моментального снимка.