Открыть сервис

Oracle GoldenGate

Oracle GoldenGate — это программное обеспечение для репликации и интеграции данных в реальном времени, разработанное корпорацией Oracle. Оно позволяет захватывать, преобразовывать и доставлять транзакционные изменения между разнородными базами данных и системами с минимальной задержкой. Продукт используется для обеспечения высокой доступности, миграции данных, создания аналитических хранилищ и синхронизации распределённых информационных систем.

История

Технология, лежащая в основе Oracle GoldenGate, была создана компанией GoldenGate Software, основанной в 1995 году. Первоначально продукт назывался GoldenGate для платформы Tandem NonStop. В 2009 году корпорация Oracle приобрела GoldenGate Software за нераскрытую сумму, после чего продукт был интегрирован в портфель решений Oracle для управления данными. С тех пор Oracle GoldenGate стал частью платформы Oracle Data Integration, которая также включает Oracle Data Integrator (ODI). Последующие версии расширили поддержку различных баз данных, включая Microsoft SQL Server, IBM Db2, PostgreSQL, MySQL и системы на базе Hadoop.

Архитектура и принцип работы

Компоненты системы

Oracle GoldenGate состоит из нескольких ключевых компонентов, работающих в архитектуре «издатель-подписчик»:

  • Manager — управляющий процесс, который запускает, останавливает и мониторит другие процессы. Он обрабатывает запросы на динамическое изменение конфигурации.
  • Extract — процесс захвата изменений. Он читает журналы транзакций (redo logs) исходной базы данных и извлекает из них записи о вставках, обновлениях и удалениях.
  • Data Pump — дополнительный процесс, который передаёт данные от Extract к целевому месту. Он может выполнять фильтрацию, преобразование и сжатие данных.
  • Replicat — процесс применения изменений на целевой системе. Он получает данные от Data Pump или напрямую от Extract и выполняет соответствующие операции в целевой базе данных.
  • Trail Files — промежуточные файлы на диске, в которых хранятся захваченные транзакционные данные. Они обеспечивают асинхронность и надёжность передачи.

Процесс репликации

Репликация данных в Oracle GoldenGate происходит в несколько этапов:

  1. Захват (Capture): процесс Extract читает журналы транзакций исходной базы данных. В Oracle это redo logs, в других СУБД — аналогичные журналы. Изменения записываются в Trail Files в собственном формате GoldenGate.
  2. Передача (Transport): Data Pump передаёт Trail Files по сети TCP/IP к целевому серверу. Данные могут быть сжаты и зашифрованы для повышения производительности и безопасности.
  3. Применение (Delivery): процесс Replicat читает полученные Trail Files и применяет изменения к целевой базе данных. Он может работать в режиме реального времени или по расписанию.

Режимы работы

Oracle GoldenGate поддерживает несколько режимов репликации:

  • Однонаправленная репликация: изменения передаются только от источника к приёмнику.
  • Двунаправленная репликация: изменения синхронизируются в обе стороны между двумя системами. Требует настройки разрешения конфликтов.
  • Каскадная репликация: данные передаются через промежуточные узлы.
  • Репликация «точка-точка»: прямое соединение между источником и приёмником.

Возможности и функции

Поддержка разнородных систем

Oracle GoldenGate поддерживает репликацию между более чем 20 различными типами баз данных и платформ, включая:

Фильтрация и преобразование данных

Продукт позволяет настраивать гибкие правила фильтрации на уровне строк, столбцов и таблиц. Например, можно исключить определённые колонки или применять преобразования с помощью встроенных функций или пользовательского кода на Java. Также поддерживается маппинг типов данных между различными СУБД.

Обеспечение целостности

Oracle GoldenGate гарантирует ACID-совместимость транзакций. Изменения применяются в том же порядке, в котором они были выполнены на источнике, что предотвращает нарушение ссылочной целостности. Для двунаправленной репликации предусмотрены механизмы обнаружения и разрешения конфликтов (например, «последнее изменение побеждает» или «приоритет по источнику»).

Безопасность

Передача данных может быть зашифрована с использованием протоколов TLS/SSL. Поддерживается аутентификация на основе сертификатов и паролей. Для управления доступом к конфигурации используется ролевая модель.

Применение

Высокая доступность и аварийное восстановление

Oracle GoldenGate используется для создания активных резервных копий баз данных. При отказе основного сервера система автоматически переключается на реплику, что минимизирует время простоя. В отличие от традиционных решений на основе физической репликации, GoldenGate позволяет выполнять переключение с точностью до транзакции.

Миграция данных

Продукт часто применяется для миграции баз данных на новые версии, платформы или в облачные среды (Oracle Cloud, AWS, Azure, Google Cloud). Миграция может выполняться без остановки работы приложений (zero-downtime migration).

Создание аналитических хранилищ

Oracle GoldenGate позволяет в реальном времени передавать данные из операционных систем (OLTP) в хранилища данных (OLAP) и озёра данных (data lakes). Это обеспечивает актуальность отчётов и аналитики без нагрузки на продуктивные системы.

Интеграция с системами потоковой обработки

Продукт интегрируется с Apache Kafka, Apache Spark и другими платформами потоковой обработки. Данные могут быть опубликованы в топики Kafka в формате JSON или Avro для дальнейшей обработки.

Преимущества и ограничения

Преимущества

  • Низкая задержка: репликация происходит в реальном времени с задержкой в секунды.
  • Минимальное влияние на источник: захват данных из журналов транзакций не требует установки триггеров или изменения структуры таблиц.
  • Гибкость: поддержка разнородных систем и сложных топологий репликации.
  • Масштабируемость: возможность параллельной обработки больших объёмов данных.

Ограничения

  • Сложность настройки: требует глубоких знаний архитектуры баз данных и сетевой инфраструктуры.
  • Стоимость: лицензирование Oracle GoldenGate является дорогостоящим, особенно для крупных развёртываний.
  • Зависимость от журналов транзакций: если журналы повреждены или удалены до захвата, данные могут быть потеряны.
  • Ограничения по типам данных: некоторые специфические типы данных (например, пользовательские объекты Oracle) могут не поддерживаться для репликации между разными СУБД.

Критика

Основные критические замечания в адрес Oracle GoldenGate связаны с его стоимостью и сложностью внедрения. Для небольших и средних организаций альтернативы с открытым исходным кодом, такие как Debezium или SymmetricDS, могут быть более доступными, хотя и уступают в функциональности. Также отмечается, что продукт требует регулярного администрирования и мониторинга, особенно в двунаправленных конфигурациях.

Интересные факты

  • Oracle GoldenGate используется в финансовом секторе для синхронизации данных между биржевыми системами, где задержка репликации измеряется миллисекундами.
  • Продукт поддерживает репликацию данных между версиями Oracle Database, отличающимися на несколько мажорных релизов (например, с 11g на 19c).
  • В 2020 году Oracle выпустила облачную версию GoldenGate для Oracle Cloud Infrastructure (OCI), которая позволяет управлять репликацией через веб-интерфейс.

Источники

  • Oracle GoldenGate Documentation, Oracle Corporation.
  • «Oracle GoldenGate 11g Handbook» by R. B. S. Kumar, P. S. S. Rao.
  • «Data Replication with Oracle GoldenGate» by J. D. Smith.
  • Статья «Oracle GoldenGate: A Review of Architecture and Applications» в журнале International Journal of Computer Applications, 2018.
  • Официальный сайт Oracle: раздел Oracle GoldenGate.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →