Распределенные базы данных Oracle

СУБД Oracle славится умением обрабатывать очень большие объемы данных и поддерживать множество одновременно работающих пользователей. Oracle не только хорошо масштабируется для развертывания на все более мощных одиночных системах, но может быть развернута и в распределенной конфигурации. Экземпляры Oracle, развернутые на нескольких платформах, можно объединить, представив в виде логически единой распределенной базы данных. Опишем основные способы взаимодействия между базами данных в распределенной системе.

Распределенные запросы и транзакции в Oracle

Корпоративные данные часто распределены по нескольким базам из соображений емкости и распределения сфер ответственности. Но пользователям бывает нужно запрашивать или обновлять распределенные данные так, как будто они находятся в одной базе.

Корпорация Oracle первой ввела распределенные базы данных еще в начале 1980-х в ответ на требования организовать доступ к данным на разных платформах. Распределенные запросы позволяют извлекать данные из нескольких баз. Распределенные транзакции служат для вставки, удаления или обновления данных, находящихся в распределенной базе. Механизм двухфазной фиксации (который мы опишем в следующих статьях блога) гарантирует, что все серверы баз данных, участвующие в транзакции, либо зафиксируют, либо откатят ее. Фоновые процессы восстановления гарантируют непротиворечивость базы данных при сбое системы во время обработки распределенной транзакции. Когда отказавшая система станет доступна, тот же самый процесс завершит распределенные транзакции.

Распределенные транзакции можно реализовать также с помощью распространенных мониторов транзакций (TP), которые взаимодействуют с Oracle по стандартному (X/Open) интерфейсу XA. В Oracle8i был добавлен механизм координации транзакций посредством сервера Microsoft Transaction Server (MTS), поэтому теперь распределенная транзакция, инициированная MTS, может распространяться и на базу данных Oracle.

Heterogeneous Services

Компонент Heterogeneous Services позволяет обращаться из СУБД Oracle к данным, хранящимся в других базах, и сторонним службам с помощью обобщенных интерфейсов установления связи ODBC и OLE-DB. Дополнительный компонент Transparent Gateways пользуется агентами, специально разработанными для различных оконечных систем.

Этот компонент позволяет формулировать запросы на диалекте языка SQL для Oracle и отправлять их другой СУБД. При этом запрос автоматически и прозрачно для пользователя будет транслирован на диалект SQL, понятный источнику данных. Помимо предоставления доступа к сторонним SQL-службам компонент Heterogeneous Services реализует транзакционность с помощью протокола двухфазной фиксации Oracle для других баз данных и процедурных служб, которые вызывают написанные на языке третьего поколения функции в системах, неуправляемых Oracle. Пользователь взаимодействует с базой данных Oracle так, будто все объекты хранятся в ней, а компонент Heterogeneous Services прозрачно обращается к «чужой» базе данных от имени пользователя.

Средства перемещения данных Oracle

При использовании распределенных баз данных часто требуется перемещать данные из одной базы данных Oracle в другую. А иногда необходимо организовать несколько копий одной и той же базы в разных местах, чтобы уменьшить объем сетевого трафика или повысить доступность данных. Вы можете экспортировать сами данные и словари данных (метаданные) из одной базы и импортировать их в другую. В Oracle Database 10g для экспорта/импорта была реализована высокоскоростная помпа данных (data pump).

Oracle предлагает много других дополнительных средств этой категории: переносимые табличные пространства, компоненты Advanced Queuing и Oracle Streams, а также решения для извлечения, трансформации и загрузки (ETL) данных. Рассмотрим их подробнее.

Переносимые табличные пространства

Переносимые табличные пространства впервые появились в версии Oracle8i. Вместо того чтобы запускать процесс экспорта/импорта, который сбрасывает данные и описывающие их структуры в промежуточный файл для последующей загрузки, можно перевести табличное пространство в режим чтения, перенести или скопировать его из одной базы в другую, а затем смонтировать. При этом в исходной и конечной базах словари, описывающие табличное пространство, должны быть одинаковыми. Такой метод позволяет сэкономить немало времени в случае перемещения больших объемов данных. Начиная с версии Oracle Database 10g можно переносить табличные пространства между различными платформами или операционными системами.

Advanced Queuing и Oracle Streams

Компонент Advanced Queuing (AQ), впервые появившийся в версии Oracle8i, позволяет асинхронно посылать сообщения из одной базы данных Oracle в другую. Поскольку сообщения хранятся в очереди внутри базы данных и посылаются асинхронно, когда устанавливается соединение, накладные расходы и объем сетевого трафика оказываются гораздо ниже, чем при использовании традиционных способов гарантированной доставки с помощью протокола двухфазной фиксации транзакции, включающей исходную и конечную базы данных. Сохраняя же сообщения в базе, AQ обеспечивает более надежный механизм восстановления, чем при других реализациях очередей с хранением сообщений в файловой системе.

Наличие механизма передачи сообщений в Oracle открывает возможность разработки и развертывания решений на базе публикации/подписки с применением правил для определения подписавшихся приложений. Когда в списке рассылки публикуется новый контент, анализируются заданные для этого списка правила и принимается решение, каким подписчикам он должен быть отправлен. При таком подходе единственный список рассылки может эффективно обслужить потребности различных сообществ подписчиков. В первой версии Oracle9i в компонент AQ были добавлены поддержка XML и интеграция с каталогом Oracle Internet Directory (OID).

Во второй версии Oracle9i компонент AQ стал частью подсистемы Oracle Streams. Последняя состоит из трех основных компонентов: репликация по журналу для сбора данных, очереди для промежуточного хранения данных и определяемые пользователем правила потребления данных. Начиная с Oracle Database 10g Streams включает поддержку технологии Change Data Capture (отслеживание изменений в источниках данных) и передачи файлов. Подсистема Streams управляется из программы Oracle Enterprise Manager и более подробно будет описана в моих дальнейших заметках блога.

Извлечение, трансформация и загрузка данных в Oracle

Инструмент Oracle Warehouse Builder (OWB) служит для проектирования целевых баз данных, особенно используемых в качестве хранилищ (data warehouses), и предоставляет репозиторий метаданных. Однако он более широко известен как графический инструмент построения отображения исходной базы на конечную и генерации сценариев извлечения, трансформации и загрузки данных (ETL). OWB пользуется средствами ETL, которые впервые были встроены в СУБД в версии Oracle9i. OWB поставляется в составе СУБД Oracle начиная с версии Oracle Database 10g Release 2. Мы опишем его более подробно в моем блоге в будущем.

Дополнительно Oracle предлагает инструмент интеграции данных Oracle Data Integrator (ODI), который не так тесно связан с СУБД Oracle, как OWB (хотя база данных Oracle может быть как исходной, так и конечной). Oracle Data Integrator основан на продукте компании Sunopsis, приобретенной Oracle. Помимо средств ETL ODI может генерировать код веб-служб для развертывания в архитектуре SOA и является ключевым компонентом стратегии интеграции с SOA, реализованной в Oracle.

Вас заинтересует / Intresting for you:

RMAN и перенос базы данных Ora...
RMAN и перенос базы данных Ora... 48315 просмотров Илья Дергунов Sun, 30 May 2021, 07:52:50
Физические структуры базы данн...
Физические структуры базы данн... 11687 просмотров Дэйзи ак-Макарова Sun, 02 Sep 2018, 09:01:15
Связи баз данных Oracle
Связи баз данных Oracle 7063 просмотров Надин Tue, 21 Nov 2017, 13:32:12
СУБД Oracle: обзор характерист...
СУБД Oracle: обзор характерист... 15812 просмотров Antoni Fri, 24 Nov 2017, 07:35:05
Войдите чтобы комментировать