Любопытное наблюдение: когда говоришь о репликации Oracle, тебе сразу говорят «да знаем мы про этот GoldenGate!». Конечно, знаете, ведь это решение предлагает непосредственный вендор объекта репликации. При этом за кадром остаются не менее интересные решения. Вендор Quest нам говорит, что в России о Shareplex больше известно в компаниях с иностранным участием, чем в исконно русских. Всё потому, что коллеги из за рубежа рассказали своим российским коллегам о том, что есть такой Shareplex и он очень даже хорош для репликации, а где-то даже превосходит решение от Oracle.
![](https://habrastorage.org/r/w1560/webt/wq/lg/en/wqlgenzacici8il2r7x9nmmxtzg.png)
Начиная с Oracle 19c, RAC можно использовать только в версии Enterprise Edition (EE). Если вы решили обновиться до 19c, а у вас одна из предыдущих версий СУБД Oracle Standard Edition работает в режиме RAC, остается несколько вариантов:
Возможно, кто-то уже решил для себя эту дилемму. Интересно услышать о принятом вами решении в комментариях. С версии 19c в Oracle также пропадает поддержка Oracle Streams — еще одного инструмента для репликации.
Другой кейс использования репликации — это т.н. ZeroImpact интеграция Oracle с внешними системами посредством чтения Redo/Archive логов. Например, в одном из банков был кейс репликации Oracle в Kafka для того, чтобы оперативно предлагать банковские продукты клиентам, оставившим свои данные на сайте.
Shareplex также поддерживает репликацию в PostgreSQL, что в итоге приводит к снижению стоимости владения СУБД. Кстати, это один из популярных кейсов использования инструмента для репликации.
В этой статье я познакомлю вас с возможностями Shareplex, расскажу о его преимуществах и предложу пилотный проект. Погнали!
Shareplex поддерживает репликацию из Oracle (включая ASM, RAC, Exadata) в другой Oracle, в Kafka, PostgreSQL, SQL Server и в JSON-файлы. Для старта репликации нужна установка агента на источник и приемник (в некоторых случаях, например, с Kafka, агент ставится на отдельный сервер). Shareplex позволяет передавать данные как из одного источника в несколько приемников так и из нескольких источников в один приемник. Shareplex не использует для своей работы расширенный функционал СУБД Oracle: Logminer или тот же Streams, поэтому не требует дополнительных расходов на лицензирование.
![](https://habrastorage.org/r/w1560/webt/zm/2a/sc/zm2ascysddljnyid3hti4xtij9m.png)
В стандартную поставку Shareplex также входит инструмент для сравнения источника с приемником. В случае обнаружения различий, будет сгенерирован SQL-запрос, выполнив который, источник и приемник придут в соответствие друг другу.
Теперь перейдем к сравнению Shareplex и GoldenGate. Ключевые отличия первого от второго — это цена и контроль консистентности передаваемых данных. Shareplex значительно дешевле аналога от Oracle и имеет встроенную возможность контроля целостности данных.
Дополнительные вопросы относительно Shareplex вы можете задать через форму обратной связи на нашем сайте или другим удобным способом. Решение доступно в триальной версии, вы можете его попробовать, оценить возможности или сравнить с вашим текущим средством для репликации Oracle. Пилотные проекты и референсные встречи мы также проводим, пожалуйста, обращайтесь.
Ещё о Shareplex:
Кейс использования Shareplex в финансовой компании (снизили время на обслуживание процесса репликации, переехали с GoldenGate)
Кейс использования Shareplex в финтехе (снизили период на репликацию с 20 до 2 часов)
Статья-сравнение Oracle Dataguard, Shareplex и GoldenGate (автор Sachin Kapale, системный архитектор) на Медиуме
![](https://habrastorage.org/webt/wq/lg/en/wqlgenzacici8il2r7x9nmmxtzg.png)
Начиная с Oracle 19c, RAC можно использовать только в версии Enterprise Edition (EE). Если вы решили обновиться до 19c, а у вас одна из предыдущих версий СУБД Oracle Standard Edition работает в режиме RAC, остается несколько вариантов:
- Переход с SE на EE;
- Переезд в облако;
- Конвертация Oracle RAC в Standalone;
- Использование SE с HA;
- Репликация.
Возможно, кто-то уже решил для себя эту дилемму. Интересно услышать о принятом вами решении в комментариях. С версии 19c в Oracle также пропадает поддержка Oracle Streams — еще одного инструмента для репликации.
Другой кейс использования репликации — это т.н. ZeroImpact интеграция Oracle с внешними системами посредством чтения Redo/Archive логов. Например, в одном из банков был кейс репликации Oracle в Kafka для того, чтобы оперативно предлагать банковские продукты клиентам, оставившим свои данные на сайте.
Shareplex также поддерживает репликацию в PostgreSQL, что в итоге приводит к снижению стоимости владения СУБД. Кстати, это один из популярных кейсов использования инструмента для репликации.
В этой статье я познакомлю вас с возможностями Shareplex, расскажу о его преимуществах и предложу пилотный проект. Погнали!
Shareplex поддерживает репликацию из Oracle (включая ASM, RAC, Exadata) в другой Oracle, в Kafka, PostgreSQL, SQL Server и в JSON-файлы. Для старта репликации нужна установка агента на источник и приемник (в некоторых случаях, например, с Kafka, агент ставится на отдельный сервер). Shareplex позволяет передавать данные как из одного источника в несколько приемников так и из нескольких источников в один приемник. Shareplex не использует для своей работы расширенный функционал СУБД Oracle: Logminer или тот же Streams, поэтому не требует дополнительных расходов на лицензирование.
![](https://habrastorage.org/webt/zm/2a/sc/zm2ascysddljnyid3hti4xtij9m.png)
В стандартную поставку Shareplex также входит инструмент для сравнения источника с приемником. В случае обнаружения различий, будет сгенерирован SQL-запрос, выполнив который, источник и приемник придут в соответствие друг другу.
Теперь перейдем к сравнению Shareplex и GoldenGate. Ключевые отличия первого от второго — это цена и контроль консистентности передаваемых данных. Shareplex значительно дешевле аналога от Oracle и имеет встроенную возможность контроля целостности данных.
Характеристика | Shareplex | GoldenGate |
Принцип работы | Shareplex считывает все изменения в базе данных из redo/archive логов Oracle, передает их в целевую базу данных и преобразует их в SQL для загрузки. Весь процесс обеспечивает консистентность данных и использует для этого primary key в целевой базе данных. SharePlex не предъявляет жестких требований к тому, имеет ли реплицируемая таблица primary key или уникальный индекс и дополнительные журналы уровня первичного ключа. Все данные захватываются из логов, включая операции DDL, без необходимости запроса каких-либо данных из БД или создания триггера. | GoldenGate считывает все изменения в базе данных из redo/archive логов Oracle, передает их в целевую базу данных и преобразует их в SQL для загрузки. Процесс репликации требует, чтобы все реплицированные таблицы имели primary key или уникальный индекс, а также открытие дополнительных журналов на уровне primary key. При копировании специальных типов, таких как Blob, GoldenGate не может получить всю информацию из redo-лога. Сначала нужно завершить работу по захвату, обратившись к данным в скопированной таблице или к сегменту отката. Обновление данных сегмента отката происходит очень быстро в загруженной базе данных. Из-за этого GoldenGate часто не может реплицировать данные. |
Установка и настройка | Установка и настройка предельно просты. На всех шагах есть подсказки. Если произошла некорректная операция, процесс установки нельзя будет продолжить. После установки требуется всего два шага, чтобы начать репликацию данных. | Установка и настройка сложны, для начала репликации данных после установки требуется около 20 шагов. А в процессе настройки, если есть ошибки или пропущенные шаги, не будет никакого сообщения об ошибке, что может привести к сбою процесса репликации. |
Первичная синхронизация | SharePlex можно комбинировать с резервным копированием и восстановлением Oracle для обеспечения первичной синхронизации данных в онлайн-режиме в гомогенной среде. Процесс синхронизации не влияет на базу данных продукционной среды. Время на синхронизацию примерно равно времени восстановления базы данных. В гетерогенной среде SharePlex может вызывать инструменты Oracle EXP/IMP для достижения синхронизации инициализации в режиме онлайн. Во время синхронизации потребление ресурсов системы можно ограничить в пределах 10%. Время синхронизации примерно равно времени исполнения IMP. Во время процесса синхронизации скорость синхронизации также можно повысить, регулируя степень параллелизма. |
GoldenGate обеспечивает первичную синхронизацию данных в онлайн-режиме, которую можно комбинировать с резервным копированием и восстановлением Oracle в гомогенной среде. Процесс синхронизации не влияет на базу данных продукционной среды. Время на первичную синхронизацию примерно равно времени восстановления базы данных. Однако, GoldenGate не будет блокировать БД-источник в процессе ее инициализации и запуска репликации. Блокировка произойдет только если вы запустите репликацию из определенного журнала. Если во время первичной синхронизации в БД (по информации из нескольких логов) есть длительные незавершенные транзакции, это приведет к потере данных по таким транзакциям на стороне приемника. В гетерогенной среде GoldenGate не может обеспечить первичную синхронизацию в онлайн-режиме, таким образом первичная синхронизация должна выполняться только после остановки записи в БД. |
Влияние на производительность продукционной среды | SharePlex захватывает данные из redo/archive логов Oracle, что в результате оказывает малое влияние на производительность БД. Захваченные данные напрямую передаются в целевую систему используя из ресурсов сервера только оперативную память и сеть (при нормальном сетевом подключении) без дополнительного дискового ввода-вывода, что сводит к минимуму влияние на производительность продукционной среды. | GoldenGate необходимо выполнять запросы к таблицам БД, чтобы скопировать некоторые специальные типы данных. DDL-операции также должны быть захвачены триггерами, что не является эффективным решением для захвата и репликации журналов. Захваченные данные должны быть сначала записаны в локальную файловую систему, а затем передаться в приемник. Таким образом продукционная среда утилизируется дополнительными запросами дискового ввода-вывода. |
Проверка данных во время копирования | SharePlex использует различные механизмы для обеспечения целостности данных во время процесса репликации, включая возможность восстановления в случае отказа базы данных, операционной системы, хоста и т. д. После различных непредвиденных сбоев процесс репликации можно быстро и точно восстановить без потери данных. | Чтобы добиться производительности репликации данных, в GoldenGate отсутствует встроенный механизм гарантии целостности данных в процессе репликации. В реплицируемых данных нет информации о номере SCN последней завершенной транзакции, если вдруг возникнут сбои в базе данных, операционной системе, хосте и т. д. Потеря данных приведет к их несогласованности. Такую проблему можно многократно моделировать и воспроизводить с помощью простых тестов. Для проверки целостности требуется отдельно лицензируемое решение Veridata. |
Сравнение данных | В SharePlex есть функционал онлайн-сравнения данных, который может быть задействован при подозрении на несогласованность данных. Он может динамически сравнивать и находить несогласованные данные без остановки приложения. Восстановление согласованности данных может выполняться автоматически. | Между модулем сравнения данных и модулем репликации GoldenGate нет связи, следовательно нет гарантии, что функция динамического сравнения данных может быть выполнена без простоя приложения. Кроме того, для сравнения данных требуется отдельный сервер и покупка специализированного модуля. Функция автоматического восстановления не предусмотрена, данные необходимо восстанавливать вручную. Процесс ручного восстановления может вызвать несоответствие новых данных. |
Синхронизация одной таблицы | SharePlex предоставляет удобный инструмент для онлайн-синхронизации с одной таблицей. С помощью всего одной команды можно добиться онлайн-синхронизации вновь добавленных реплицированных таблиц или несовместимых таблиц без какого-либо ущерба для непрерывности бизнеса. | GoldenGate не имеет средства синхронизации единичных таблиц. Если вам нужно повторно синхронизировать таблицу, вы должны сначала поместить таблицу в очередь репликации и вручную подтвердить, что в таблице нет транзакции коммита. Весь процесс синхронизации занимает около 20 шагов, что является чрезвычайно сложным и громоздким. |
Поддерживаемые типы данных | SharePlex в настоящее время поддерживает все типы данных Oracle и не имеет ограничений для приложений. | GoldenGate поддерживает меньшее количество типов данных и не поддерживает такие типы, как Bfile и UDT. А для некоторых специальных полей, таких как Blob, Clob и других типов, нужно получать данные, обращаясь к скопированной таблице. |
Поддержка DDL-операций | Поддерживается репликация всех операций DDL из redo/archive логов. | Поддерживаются только несколько типов операций DDL для репликации, большинство операций требуют обработки вручную. Для репликации DDL-операций требуется создание триггеров в продукционной БД, вместо репликации на основе записей из redo/archive логов (GoldenGate утверждает, что им не нужно создавать какие-либо объекты в базе данных, но это не так). |
Поддержка технологии RAC | SharePlex поддерживает среду RAC на всех платформах, и при выходе из строя узла RAC, его можно автоматически переключить на другой узел с помощью утилиты Cluster, чтобы продолжить репликацию без ручного вмешательства и без потери данных. | GoldenGate поддерживает репликацию данных в среде RAC, но если узел RAC, выходит из строя, канал репликации не переключается автоматически. После ручного вмешательства, хотя и репликация может продолжаться, при каждом переключении будет возникать потеря данных. Данные должны быть повторно синхронизированы, чтобы полностью гарантировать их согласованность. |
Производительность репликации | SharePlex использует многопоточный подход для загрузки данных в приемник. На основе обеспечения последовательности и согласованности всех транзакций он также может обеспечить высокую скорость обработки для тяжелых одновременных транзакций. | Поскольку GoldenGate реплицирует только завершенные транзакции, обеспечение согласованности транзакций может быть достигнуто только тогда, когда приемник использует один поток. При обработке большого количества одновременных транзакций скорость обработки данных не может быть гарантирована. Для достижения параллелизма используется многоканальный метод, но при использовании многоканального метода объект на приемнике будет разделен на несколько транзакций и нет гарантии, что порядок отправки каждой транзакции такой же, как и в источнике. |
Поддержка тяжелых транзакций | Транзакция копируется после её начала. Как для тяжелых так и для легких транзакций может гарантироваться репликация данных в реальном времени, и соответствие всех транзакций источнику. | Репликация начинается только после того, как транзакция завершена, а в случае тяжелых транзакций время выполнения может быть велико. |
Обратное переключение после аварийного восстановления | SharePlex обеспечивает обратное переключение репликации после аварийного восстановления в продуктивную базу данных. Он может реплицировать изменения в приемник после возврата к продуктивной базе данных. Операция чрезвычайно проста, не требует синхронизации повторной инициализации и позволяет проводить плановое обслуживание с практически нулевым временем простоя. | Не может обеспечить функцию быстрого переключения, сначала необходимо очистить базу данных продуктивной системы и использовать восстановленную базу данных для повторной инициализации. |
Мониторинг и оповещения | Есть встроенный графический интерфейс и отправка уведомлений на электронную почту. | Есть встроенный графический интерфейс, который требует отдельного лицензирования. Не поддерживается отправка уведомлений на электронную почту. |
Дополнительные возможности настройки | В Shareplex можно выбрать метод обработки ошибки копирования, можно настроить отложенную репликацию, можно игнорировать определенные транзакции или репликацию пользователей, можно выполнить настройки в соответствии с конкретным пользователем, таблицей или использовать маску. | Вспомогательные функции немногочисленны и сложно выполнить тонкую настройку. |
Дополнительные вопросы относительно Shareplex вы можете задать через форму обратной связи на нашем сайте или другим удобным способом. Решение доступно в триальной версии, вы можете его попробовать, оценить возможности или сравнить с вашим текущим средством для репликации Oracle. Пилотные проекты и референсные встречи мы также проводим, пожалуйста, обращайтесь.
Ещё о Shareplex:
Кейс использования Shareplex в финансовой компании (снизили время на обслуживание процесса репликации, переехали с GoldenGate)
Кейс использования Shareplex в финтехе (снизили период на репликацию с 20 до 2 часов)
Статья-сравнение Oracle Dataguard, Shareplex и GoldenGate (автор Sachin Kapale, системный архитектор) на Медиуме