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

Enterprise Replication

Enterprise Replication (ER, корпоративная репликация) — это механизм синхронизации и копирования данных между несколькими экземплярами серверов баз данных, разработанный компанией IBM для своих информационных систем семейства Informix. Технология обеспечивает автоматическое распространение изменений данных (вставок, обновлений, удалений) между географически распределёнными узлами в режиме, близком к реальному времени, с гарантией целостности транзакций и отказоустойчивости. Enterprise Replication относится к классу гетерогенных (работающих на разных платформах) систем репликации, поддерживающих как однонаправленные, так и двунаправленные потоки данных в топологиях типа «звезда», «кольцо» или «полносвязная сеть».

История и развитие

Технология Enterprise Replication была впервые представлена компанией Informix Software в середине 1990-х годов в версии Informix Dynamic Server (IDS) 7.3. Основной целью разработки стало создание инструмента для поддержки территориально-распределённых приложений, работающих в условиях ограниченной или ненадёжной связи между узлами. В отличие от ранее существовавших механизмов (например, репликации на основе триггеров и логов), ER изначально проектировался как независимая от топологии и платформы система.

После поглощения Informix корпорацией IBM в 2001 году технология продолжила развиваться в составе Informix Dynamic Server (теперь IBM Informix). В версиях IDS 11.x и 12.x были внедрены значительные улучшения: поддержка сжатия данных при репликации, улучшенная обработка конфликтов, возможность подключения к репликации на уровне записей без остановки работы базы данных (Online Replication), а также интеграция с облачными средами и виртуализацией. В настоящее время Enterprise Replication входит в состав всех современных редакций IBM Informix (с 2017 года продукт принадлежит компании HCL Technologies, переименован в HCL Informix).

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

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

Enterprise Replication состоит из нескольких ключевых компонентов:

Механизм передачи данных

Система ER отслеживает изменения данных в исходной базе с помощью специального процесса — Capture. При каждом изменении строки таблицы (INSERT, UPDATE, DELETE) Capture формирует транзакционный лог, который содержит полную информацию об изменении (старое и новое значение, идентификатор транзакции, время). Эти логи упаковываются в пакеты и отправляются на целевые узлы через сеть с использованием протокола TCP/IP.

На принимающем узле процесс Apply расшифровывает лог и применяет изменения к целевой базе данных. Для обеспечения целостности применяется двухфазная фиксация (two-phase commit) — изменения либо применяются полностью, либо откатываются при возникновении ошибки. Если сеть временно недоступна, изменения накапливаются на исходном узле в очереди и передаются при восстановлении соединения.

Топологии

Enterprise Replication поддерживает несколько схем распространения данных:

Обработка конфликтов

При двунаправленной репликации возможны коллизии, когда одна и та же строка изменяется на разных узлах одновременно. Enterprise Replication содержит встроенные методы разрешения конфликтов на основе:

Применение и значение

Enterprise Replication используется в тех областях, где критически важны доступность данных в реальном времени, географическая распределённость и отказоустойчивость. Основные сценарии включают:

Преимущества технологии ER перед конкурирующими решениями (такими как Oracle GoldenGate, MySQL Replication или PostgreSQL streaming replication) включают отсутствие необходимости в едином центральном каталоге, устойчивость к временным разрывам связи и полноценную поддержку двунаправленной репликации с автоматическим разрешением конфликтов в стандартной поставке.

Ограничения и критика

Несмотря на гибкость, Enterprise Replication имеет ряд недостатков:

Сравнение с альтернативными технологиями

В современных ИТ-инфраструктурах Enterprise Replication конкурирует с такими продуктами, как Oracle GoldenGate, AWS Database Migration Service, Kafka Connect и Debezium. Основные отличия:

ПараметрEnterprise ReplicationOracle GoldenGateApache Kafka с Connect
ПротоколСобственный (Informix)Лог-транспортПубликация/подписка
ЗадержкаМиллисекунды-секундыМиллисекундыМиллисекунды-минуты
Автоматическое разрешение конфликтовДа (встроенное)Требует дополнительной настройкиНе предусмотрено
Поддерживаемые СУБДТолько InformixOracle, MySQL, PostgreSQL, DB2, SQL ServerЛюбые через разъёмы

Будущее развитие

С переходом продукта под управление HCL Technologies (2017 г.) развитие Enterprise Replication продолжилось: в выпусках 12.10.x и 14.x добавилась интеграция с Docker и Kubernetes для развёртывания в микросервисных архитектурах, а также улучшенная поддержка облачных сред (AWS, Microsoft Azure, Google Cloud). Однако в условиях роста популярности универсальных решений на базе стриминг-платформ (Kafka, Pulsar) нишевый продукт Informix ER постепенно теряет позиции, сохраняясь в первую очередь в legacy-системах крупных предприятий, уже использующих экосистему Informix.

Источники

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

На главную BFOmetr →