При использовании распределенных баз данных часто требуется перемещать данные из одной базы данных 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 Warehouse Builder (OWB) служит для проектирования целевых баз данных, особенно используемых в качестве хранилищ (data warehouses), и предоставляет репозиторий метаданных. Однако он более широко известен как графический инструмент построения отображения исходной базы на конечную и генерации сценариев извлечения, трансформации и загрузки данных (ETL). OWB пользуется средствами ETL, которые впервые были встроены в СУБД в версии Ora- cle9i. OWB поставляется в составе СУБД Oracle начиная с версии Oracle Database 10g Release 2. Мы опишем его более подробно в главе 10.
Дополнительно Oracle предлагает инструмент интеграции данных Oracle Data Integrator (ODI), который не так тесно связан с СУБД Oracle, как OWB (хотя база данных Oracle может быть как исходной, так и конечной). Oracle Data Integrator основан на продукте компании Sunopsis, приобретенной Oracle. Помимо средств ETL ODI может генерировать код веб-служб для развертывания в архитектуре SOA и является ключевым компонентом стратегии интеграции с SOA, реализованной в Oracle.