Базы данных Oracle - статьи

         

Складирование, хранение и распространение изменений


Вся захваченная информация хранится в областях хранения (Staging Area). Они реализуются в виде очередей сообщений, поэтому для работы с ними можно использовать стандартный API Advanced Queuing. Однако, поскольку в этой очереди хранятся не только сообщения стандартных типов, но и информация об изменениях различных типов данных в БД, Oracle ввел поддержку нового самоописывающегося типа данных Sys.AnyData. В этом типе данных могут храниться самые разные типы информации. Он позволяет совмещать в одной очереди (потоке) различные типы данных. Методы этого объектного типа позволяют извлекать информацию о типе хранящегося экземпляра объекта, сам экземпляр объекта, его элементы, модифицировать экземпляр объекта, преобразовывать другие типы в Sys.AnyData и т д.

Все элементы потока, помещенные в Staging Area, хранятся в ней до тех пор, пока все подписчики, подписавшиеся на эти элементы, не используют их. Напомним, что подписчиками могут быть не только Apply процессы, но и другие Staging Area или пользовательские приложения. Использованные элементы потока автоматически уничтожаются, однако можно отменить уничтожение и оставлять их в Staging Area, например, для выполнения аудита.

При помещении элементов потока в Staging Area, при их извлечении из нее и при перемещении в другую Staging Area можно выполнять преобразование элементов. Преобразования выполняются автоматически, необходимо лишь указать при конфигурировании какие процедуры будут выполнять преобразование и для каких элементов потока эти процедуры надо вызывать. Каждая процедура преобразования получает на входе элемент потока (LCR или сообщение), модифицирует его и возвращает модифицированный элемент потока. Например, такая процедура может изменить формат или тип данных реплицируемой колонки, изменить имя колонки или таблицы и т. д. Это позволяет использовать Oracle Streams для репликации данных между объектами разной структуры.



Содержание раздела