Источник: “Oracle Magazine/Русское издание”
2005-10-18
Оригинал: Официальный документ Oracle (An Oracle White Paper),
конференция Oracle OpenWorld, San-Francisco, декабрь 2004
Oracle Database 10g предлагает устойчивые и полные решения для разрешения всех ваших требований к интеграции информации. Эти решения обеспечивают доступ к информации тогда и в том месте, где в ней возникает необходимость, оптимизируя доступ к этой информации независимо от ее физического местоположения. Они интегрируют информацию во всей распределенной среде, будь то в пределах grid, или для нескольких автономных систем, или для некоторой их комбинации.
Эта статья затрагивает вопросы интеграции информации с использованием распределенного SQL, Oracle Streams, Oracle Transparent Gateways и других возможностей переноса данных. Oracle Streams предлагает единую унифицированную среду для совместного использования данных, включая организацию очереди обмена сообщениями и репликацию. Oracle Transparent Gateways делает возможным прозрачный доступ из среды Oracle к системам других производителей. InfiniBand – решение для высокоскоростного внутреннего соединения – предлагает сетевую технологию нового поколения для обеспечения соединений. Далее в этой статье описывается, как эти характеристики делают возможным не только эффективную интеграцию информации и возможность взаимодействия, но и эффективное предоставление данных для grid-вычислений.
Решение для интеграции информации улучшает принятие решений, обеспечивая интегрированное представление данных, независимо от того, где эти данные фактически расположены. Такое решение обеспечивает повышенную эффективность эксплуатации, позволяя нескольким приложения работать совместно. В конечном счете, это может привести к повышению эффективности деятельности отдела ИТ, а также к сокращению количества источников данных и улучшению взаимодействия и сотрудничества среди оставшихся источников.
Хотя консолидация предлагает самую простую форму интеграции информации, достигнуть ее весьма часто оказывается самым трудным делом. Некоторые отделы могут не желать (или в случае некоторых унаследованных систем оказываются неспособны) консолидировать свои данные. Вместо этого большинство компаний предпочитает консолидировать данные в несколько (обычно, небольшое число) баз данных. Сокращение общего числа баз данных позволяет таким компаниям понизить административные затраты за счет сокращения полного числа серверов и баз данных, которыми следует управлять. Кроме того, за счет однократного развертывания (ну, может быть, эту процедуру придется повторить несколько раз) приложений, компании могут достигнуть более быстрого развертывания приложений. И, наконец, так как запросы к централизованным данным выполняются быстрее, эти компании будут иметь ускоренный доступ к глобальным данным, что делает консолидацию идеальной стратегией для приложений систем анализа бизнес-информации и хранилищ информации.
Oracle Database 10g предлагает заказчикам, желающим консолидировать свою информацию, целый ряд возможностей, в том числе, Oracle Real Application Clusters (RAC), поддержку больших баз данных, базы данных XML, виртуальные частные базы данных (VPD), секционирование, LOB и BFILE, инструментальные средства загрузки и миграции и многие другие.
Real Application Clusters (RAC) – RAC дает возможность одной базе данных выполняться на нескольких сгруппированных узлах, позволяя совокупности недорогих компьютеров или серверов-лезвий достигать производительности дорогой машины с SMP. Используя для обеспечения распределения рабочей нагрузки между узлами и общедоступные диски, и общедоступный кэш, RAC обращается к дискам намного реже, чем другие кластерные базы данных. Более того, по мере добавления узлов к базе данных производительность RAC масштабируется почти линейно.
Поддержка больших баз данных – Oracle Database 10g теперь поддерживает единую базу данных объемом до 8 миллионов терабайтов данных. Это фактически снимает любые ограничения на максимальный размер вашей консолидированной базы данных. Можно также записывать данные в значительно большие по размеру файлы, уменьшая тем самым количество файлов в больших базах данных. Дополнительно, табличное пространство Bigfile (для больших файлов) упрощает управление файлами данных в больших базах данных, минимизирует связанные с наличием большого числа файлов данных проблемы с масштабируемостью и упрощает управление хранением за счет использования таких опций как автоматическое управление памятью (Automatic Storage Management – AUM) и управляемые Oracle файлы (Oracle Managed Files – OMF).
База данных XML – База данных XML успешно справляется с высокопроизводительной записью и выборкой данных XML. Для хранения и управления данными XML Oracle XML DB обеспечивает независимую от среды хранения инфраструктуру, не зависящую от контента и языка программирования. Среди многих возможностей базы данных XML можно отметить "родной" тип данных XML, навигационный доступ и поиск XML, стандартный доступ через API и управление WebDAV для XML.
Инструментальные средства миграции – Oracle предлагает широкий спектр механизмов для миграции вашей информации в консолидированную базу данных, включая переносимые табличные пространства и утилиту Data Pump. Переносимые табличные пространства позволяют вам быстро переносить или копировать подмножество одной базы данных Oracle в другую базу данных Oracle, даже если они находятся на различных платформах. Когда вам требуется более тонкая степень детализации, используйте Data Pump, которая позволяет выбирать объекты для перемещения и по желанию планировать состав и размещение схем, файлов данных и табличных пространств.
Виртуальная частная база данных – VPD делает возможной консолидацию между доменами защиты, предлагая детальный доступ к строкам внутри базы данных.
Секционирование – Возможности секционирования Oracle повышают производительность, доступность и управляемость больших таблиц, не требуя переписывания приложения.
Поскольку нет необходимости переносить какую-либо информацию, объединение обеспечивает самый быстрый путь к интеграции информации; незначительные изменения приводят к немедленным результатам. Объединение обеспечивает также поддержку такой информации, которая хранится в унаследованных приложениях или приложениях, требующих наличия локального владельца, и просто не может быть консолидирована. Вы должны использовать объединение, чтобы поддержать создаваемую на заказ интеграцию нечасто используемой информации, обращения к которой достаточно редки.
Oracle Database 10g поддерживает множество источников данных и множество методов обращения к этим источникам данных.
Oracle Distributed SQL обеспечивает следующие преимущества:
Прозрачность местоположения – Oracle позволяет разработчикам и администраторам приложений скрывать физическое местоположение объектов базы данных от приложений и пользователей, используя для этого синонимы, представления или хранимые процедуры. Пользователям не требуется знать физическое местоположение объектов базы данных, и администраторы могут переносить объекты, не оказывая воздействия на конечных пользователей или существующие приложения.
Прозрачность SQL и COMMIT – Стандартные операторы SQL работают в архитектуре объединенной базы данных точно так же, как и в автономной среде. Используя двухфазное завершение транзакции, Oracle автоматически гарантирует, что полная транзакция будет или зафиксирована (commit), или откачена (rollback) назад во всех узлах. Этот механизм полностью прозрачен и не требует никакого сложного программирования или других специальных действий для обеспечения контроля над распределенными транзакциями.
Оптимизация распределенных запросов – Oracle использует технологию оптимизатора для уменьшения количества необходимых передач данных между сайтами, когда транзакция отыскивает данные в удаленных таблицах, на которые ссылаются распределенные операторы SQL.
Для гладкой способности к взаимодействию между несопоставимыми системами требуются преобразования SQL, преобразования словаря данных и преобразования типа данных, даже если не-Oracle системы базируются на стандартах SQL. И Generic Connectivity, и Oracle Transparent Gateways имеют возможность преобразовать диалект одной системы к диалекту другой.
База данных Oracle Database 10g может быть потребителем Web-сервисов; это значит, что она может вызывать внешний Web-сервис из классов Java, процедур PL/SQL и триггеров. Кроме того, Oracle может сделать так, что Web-сервис будет похож на источник строк SQL. Если сделать Web-сервис похожим на источник строк SQL, это позволит вам делать запросы к нему, используя SQL. В таком случае вы можете использовать много агрегатных функций SQL, чтобы с легкостью анализировать данные, предложенные Web-сервисом. Oracle Database 10g может также быть провайдером Web-сервисов. Oracle показывает многие операции базы данных, как Web-сервисы. Например, через Web-сервис можно сделать запрос к базе данных. Используя Web-сервис, можно также исполнить операцию обмена сообщениями, например, поставить или удалить сообщение в очередь Streams. Есть Web-сервисы, которые исполняют операторы языка DML -- обновления, вставки и удаления. Есть также Web-сервисы, которые могут вызывать процедуры и функции PL/SQL, возвращая их результаты в вызывающее Web-сервис приложение.
UltraSearch делает возможным поиск в портале по контентным активам организации, пуская в ход основные возможности масштабируемости и надежности платформы Oracle. Например, представьте, что у вас имеется приложение, которое предлагает положение на бирже, цены, новости и информацию. Положение на бирже может основываться на традиционных источниках баз данных, последняя цена может быть получена из Web-сервиса, а новости и информация могут основываться на множестве структурированных и неструктурированных источников. UltraSearch может построить для этих источников индекс, по которому возможен поиск. Это позволяет вам строить запрос, представляющий информацию, куда включено положение на бирже и цены, и связываться с релевантными новостями и информацией о каждой акции.
Как правило, компании должны интегрировать данные из широкого разнообразия источников. Они должны совместно использовать обновления OLTP, события базы данных и сообщения приложений, поскольку заказчики могут помещать заказы интерактивно, через сотрудников отделов продаж или даже через партнеров. Эту информацию, вообще говоря, следует направить широкому спектру адресатов, например, в гетерогенные реплицируемые базы данных, системы организации очередей сообщений, рабочую область хранилища данных, хранилища операционных данных, другие приложения и в резервную базу данных.
Oracle обеспечивает разнообразные опции совместного использования информации, включая Oracle Streams, материализованные представления, переносимые табличные пространства и накачку данных (data pump). Эти опции позволяют разместить данные там, где к ним чаще всего обращаются, сокращая за счет этого время ответа и избавляясь от зависимости от удаленных хранилищ данных.
Как показано на следующей иллюстрации, Oracle Streams предлагает набор элементов, которые позволяют пользователям управлять тем, какая информация будет помещена в поток, как течет этот поток, или как он направлен от узла к узлу, что случается с событиями в потоке, пока они текут в каждый узел, и как заканчивается поток. Определяя конфигурацию элементов, действующих в потоке, пользователь может разрешить конкретные требования.

Oracle Streams поддерживает захват событий (изменения базы данных и сгенерированные приложением сообщения) в рабочую область. Эти события захватываются двумя способами. При неявном захвате сервер перехватывает события DML и DDL в исходной базе данных. Явный захват позволяет приложениям явно генерировать события и размещать их в рабочей области.
После захвата события помещаются в рабочую область. Рабочая область – это очередь, которая предлагает сервисы для записи захваченных событий и управления ими. В ней обеспечивается защищенная область хранения, а также аудит и отслеживание захваченных данных.
События, по обстановке, могут быть переданы в другие рабочие области: в пределах той же самой базы данных или в удаленной базе данных. Чтобы упростить сетевую маршрутизацию и уменьшить трафик WAN, события не следует посылать всем базам данных и всем приложениям. Скорее, они могут быть направлены через рабочие области для одной или более систем, пока не достигнут подписавшейся системы. Например, событие может распространяться через базу данных-концентратор, которая фактически не использует это событие. В одной рабочей области могут “складироваться” события из нескольких баз данных, что упрощает установку и конфигурирование.
События из рабочей области используются механизмом применения (apply engine), где изменения, которые они представляют, применяются к базе данных, или же они используются приложением. В Oracle Streams включен гибкий механизм применения, который позволяет использовать стандартные или изготовленные на заказ функции применения. Это позволяет в случае необходимости выполнять преобразования данных. Поддержка явного исключения из очереди позволяет разработчикам приложений использовать Oracle Streams, чтобы уведомить приложения об изменениях в данных, продолжая усиливать возможности захвата и распространения изменений Oracle Streams.
Oracle Streams является открытым решением для совместного использования информации. Каждый элемент поддерживает стандартные языки и отраслевые стандарты. Streams поддерживает захват и применение из систем Oracle в системы других производителей. Изменения могут быть применены к системам других производителей через прозрачные шлюзы (transparent gateway) или универсальную возможность обеспечения связи (generic connectivity). Кроме того, в Streams включен API, позволяющий источникам данных от других производителей легко представлять или получать записи файла изменений, обеспечивая гетерогенное движение данных в обоих направлениях.
Определяя конфигурацию действующих в потоке элементов, пользователь может разрешить определенные требования, например, организацию очереди сообщений или репликацию данных.
Это средство поддерживает все стандартные возможности систем организации очередей сообщений, включая очереди со многими потребителями, публикацию и подписку, маршрутизацию на основе контента, распространение через Интернет и преобразования. В дополнение, функциональные возможности шлюза сообщений Oracle интегрируют приложения базы данных Oracle с другими системами организации очередей сообщений типа Websphere MQ (ранее называлась MQ Series) и Tibco.
В отличие от традиционной очереди, в рабочей области Oracle Streams могут храниться сообщения различных типов, так что можно в единственной рабочей области ставить в очередь различные типы сообщений. Кроме того, Streams поддерживает уведомление пользовательских приложений, объединяя преимущества практически реального масштаба времени модели проталкивания (push model) с масштабируемостью и преимуществами управляемости модели выталкивания (pull model).
Репликация в Oracle Streams автоматически перехватывает все изменения в исходной базе данных, передает эти изменения в одну или несколько удаленных баз данных, а затем применяет эти изменения в каждой целевой базе данных. Oracle Streams может реплицировать не только изменяется в данных (изменения DML), но и изменения в структуре таблиц (изменения DDL).
Администраторы базы данных могут выбирать, какие изменения следует передавать в каждую целевую базу данных, и могут определить, как эти сообщения должны быть направлены. Этот направленный сетевой подход допускает создание сложных конфигураций, включая n-узловые и "разговор через концентратор" (hub-and-spoke), а также сетевых конфигураций, которые за один раз распространяют изменения к одному сайту для последующего разветвления сообщений по другим адресатам. В том случае, когда изменение над одними и теми же данными следует выполнить в нескольких местоположениях, Oracle Streams автоматически обнаружит конфликт и разрешит его по вашему желанию.
Материализованные представления могут создаваться или только для чтения, или обновляемыми с разрешением конфликтов. Так как они поддерживают вычисления в отключенном режиме и их легко развертывать в массовых масштабах, материализованные представления особенно подходят приложениям для мобильных вычислений. Материализованные представления также обычно используются в средах хранилищ данных, чтобы повысить производительность за счет вычисления и записи агрегированных данных типа сумм и средних значений.

Пример использования интеграции информации Oracle
Предположим, что для повышения доступности, масштабируемости и производительности своего корпоративного сайта компания использует Oracle Streams, чтобы с его помощью обслуживать несколько копий этого сайта. Предположим теперь, что они должны также иметь базу данных отчетности, содержащую самую свежую информацию для аналитиков в офисе штаба компании в Нью-Йорке, чтобы выполнять специализированные (нерегламентированные) запросы, а также базу данных для восстановления после чрезвычайных ситуаций, независимо обслуживаемую из их нью-йоркского офиса. Дополнительно предположим, что для поддержки сотрудников отделов продаж “на местах” используются обновляемые материализованные представления. И, наконец, последним требованием могло бы стать разделение данных (совместное пользование данными) с имеющимися приложениями, которые работают в среде базы данных Sybase.
В этом примере Oracle Streams используется для репликации данных в N-узловой конфигурации, состоящей из трех региональных сайтов: в Нью-Йорке, Лондоне и в Токио. На каждом из этих сайтов Streams с помощью журналов захватывает любые изменения, которые происходят с подписанными таблицами в каждом регионе, и локально помещает их в очереди. Все изменения, захваченные в каждом регионе, затем отправляются каждой из баз данных других регионов. Это делается для того, чтобы все проведенные на каждом сайте изменения были отражены на каждом другом сайте, обеспечивая полные данные для подписанных объектов во всем мире.
Так как после их получения в каждой региональной базе данных обновления должны быть применены автоматически, для применения изменений используется подразумеваемый (то есть, используемый по умолчанию) механизм применения Oracle Streams. После того как обновления применены, Oracle Streams проверяет конфликты и разрешает любые обнаруженные конфликты. Streams может также использоваться для обмена данными с конкретными таблицами из баз данных других производителей. Используя Oracle Transparent Gateway для Sybase, механизм применения потоков применит изменения к базе данных Sybase, используя те же самые механизмы, которые применяются для баз данных Oracle.
Управление базами данных отчетности и восстановления в чрезвычайных ситуациях осуществляется с Нью-йоркского сайта базы данных. База данных отчетности является полнофункциональной базой данных Oracle, в которой имеются копии в режиме “только для чтения” всех релевантных (относящихся к делу) таблиц приложения. Сайт отчетности не будет сконфигурирован для перехвата изменений этих таблиц приложения. Streams не накладывает никаких ограничений на конфигурацию или использование этой базы данных отчетности.
Лондонский сайт также служит главным сайтом (мастер-сайтом) для нескольких сайтов обновляемых материализованных представлений. Каждый продавец получает обновляемую копию только той части данных, которая ему требуется. Эти сайты обычно подключаются только один раз в день, чтобы выгрузить на мастер-сайт свои заказы и загрузить с него любые изменения, начиная с момента последнего обновления.
Новинкой в Oracle Database 10g стала поддержка кроссплатформных переносов. База данных может теперь обрабатывать данные в табличном пространстве и делать изменения любого формата, необходимые для того, чтобы аккомодироваться к различным соглашениям для различных платформ – например, к различному упорядочению байтов. В этом выпуске также стало возможно переименовывать табличное пространство – возможность, которая может быть очень важной, если вы транспортируете табличное пространство в базу данных, где уже существует табличное пространство с тем же самым именем.
Data Pump позволяет пользователям переносить или копировать подмножества табличного пространства или базы данных, обеспечивая более высокую степень детализации, чем переносимые табличные пространства. Пользователи могут определить для переноса определенные объекты, могут заново планировать состав схем, файлов данных и табличных пространств. Кроме того, Data Pump может работать в интерактивном режиме, который позволяет пользователям добавлять к файлу дампа дополнительные файлы. Так как Data Pump совместима с Oracle Streams, пользователи могут дополнительно экспортировать объекты в новую базу данных и использовать потоки для сохранения этих объектов синхронизированными с промышленной базой данных.
Oracle Net поддерживает два типа высокоскоростного межузлового соединения: Sockets Direct Protocol (SDP) и асинхронный ввод-вывод.
SDP – это стандартный проводной протокол для протокола InfiniBand. Поддержка протокола SDP Oracle дает возможность базам данных, серверам приложений и центральным процессорам работать более эффективно. Базы данных затрачивают меньше времени в ожидании работы, серверы приложений проводят меньше времени в ожидании ответов, а у центральных процессоров остается больше свободных циклов, которые можно использовать для другой работы. В результате, с включением технологии InfiniBand заказчики видят повышение производительности приложений для имеющихся у них серверов (как для серверов базы данных, так и серверов приложений) без расходов на переход к более дорогим аппаратным средствам. Поддержка асинхронного ввода-вывода позволяет Oracle Net посылать и получать буферы, которые будут успешно переданы непосредственно в ядро операционной системы. Это устраняет CPU-емкие операции копирования памяти, тем самым, высвобождая циклы CPU. За счет усовершенствований и от SDP, и от поддержки асинхронного ввода-вывода, приложения с большими количествами сетевого трафика получают самую большую выгоду.
Предположим, что у вас имеется промышленная база данных, и необходимо выполнить некоторый анализ. В среде grid вы можете просто принять решение добавить узлы к промышленной базе данных RAC, чтобы обеспечить дополнительные ресурсы CPU, необходимые для анализа. Тем не менее, иногда это может оказаться невыполнимым. Возможно, есть ведомственные ограничения, которые запрещают проведение анализа по отношению к промышленной базе данных. Возможно, вы не эксплуатируете RAC, или у вас не имеется больше подходящих узлов в собственной сети и устройств SAN для распределения – но у вас действительно имеются узлы в другой сети или SAN. Используя возможности предоставления данных Oracle Database 10g, вы можете транспортировать табличные пространства, содержащие информацию, которую вы планируете анализировать, определить значения реплики Streams этих данных в другой системе и выполнить анализ этой системы.
Эта опция также полезна для того, чтобы мигрировать в grid с помощью единственной команды и без всякого простоя системы. Кроссплатформные переносимые табличные пространства позволяют переносить данные между различными платформами и операционными системами. В то время как вы перемещаете ваши данные и создаете новую базу данных в grid-среде, имеющаяся у вас база данных остается онлайновой. Как только перемещение будет выполнено, происходящие с базой данных изменения будут перехватываться и применяться к целевой базе данных. Сразу после запуска реплики, вы можете просто указать приложениям на новую базу данных в grid, и миграция будет завершена.
Иногда лучший способ совместного использования и интеграции информации состоит в том, чтобы просто обратиться к ней дистанционно, когда вы испытываете в ней необходимость. Как было описано ранее в этой статье, в Oracle имеется распределенный SQL, удаленные вызовы процедур и встроенные распределенные транзакции. Вы можете делать запросы об информации, в которой вы нуждаетесь, к другим базам данных, обновлять эту информацию, когда вы в этом нуждаетесь, и получать доступ к логике программ на других серверах. Можно обратиться к данным в других системах управления базами данных через универсальные возможности связи Oracle, или используя для этого Transparent Gateways. Можно объединить данные Oracle и данные из других систем, а также использовать Oracle Streams со шлюзами для совместного использования информации с системами от других производителей.
В grid-среде с увеличивающимся количеством данных и высоким объемом сетевого трафика, эффективный доступ к информации может стать устрашающей задачей. Производительность и масштабируемость grid зависят от эффективности, надежности и защищенности средств коммуникации. Используя новые опции высокоскоростного межузлового соединения, Oracle Database 10g обеспечивает эффективную и быструю сетевую магистраль для grid-среды, которая также поддерживает большое количество данных, передаваемых по сети. Кроме того, она снимает с серверов тяжелое бремя использования CPU для работы с сетями, и позволяет серверам иметь больше времени для выполнения того, для чего они были первоначально предназначены – выполнения прикладных программ и обслуживания данных.
Преобладающий сегодня протокол LAN и Интернета (то есть, TCP/IP) жертвует временем ожидания для достижения надежности, общности и расстояния. В среде центра обработки данных серверы приложений, являющиеся программным обеспечением промежуточного уровня, обрабатывают бизнес-логику и связываются с Web-серверами и с серверами базы данных. Интерфейсные коммуникация на входе обычно выполняются сегодня по подключениям TCP/IP, что становится тяжким бременем при использовании CPU серверов приложений, так же как и для серверов базы данных. Для некоторых конфигураций измерения показали, что на обработку стека TCP/IP расходуется до 80% циклов CPU (прим.), в результате чего не так уж много возможностей CPU остается для первоначального назначения серверов приложений – выполнять приложения, и первоначального назначения серверов базы данных – обслуживать данные.
Распределенный SQL используется для прозрачного взаимодействия между базами данных Oracle. Generic Connectivity и Transparent Gateways расширяют эту возможность на системы от других производителей. Oracle Streams Advanced Queuing расширяет возможность коммуникаций, добавляя к базам данных приложения. Возможности репликации Oracle Streams могут значительно улучшить доступность и масштабируемость этих приложений. Дополнительно, поддержка высокоскоростного межсоединения, предлагаемая Oracle Net, увеличивает эффективность и производительность интеграции информации.