В чем разница между Oracle Streams и сбором данных изменений?
-
07-07-2019 - |
Вопрос
Существует несколько похожих технологий Oracle - Oracle Streams, Oracle Data Capture и уведомление об изменении базы данных. Р>
Чем они отличаются? Р>
Они связаны с Oracle Advanced Queuing?
Решение
Oracle CDC предназначен для регистрации изменений в таблицах БД, а изменения хранятся в специальных таблицах Oracle. Существует два режима работы CDC: асинхронный (на основе Java) или синхронный (на основе триггеров БД, повышающие производительность).
Oracle Streams расположен поверх Oracle CDC и представляет собой полноценный транспортный механизм (например, HTTP) для синхронизации данных между двумя серверами. Он основан на технологии Oracle Advanced Queues и рассчитан на высокую производительность и надежность.
Oracle CDC и Streams обычно используются для синхронизации данных между серверами Oracle DB ... С Oracle CDC вам не нужно использовать Oracle Streams, например, для. Вы можете написать свои собственные процедуры экспорта данных, которые создают плоские файлы для синхронизации между двумя серверами БД, тогда как в Streams у вас должна быть сетевая связь между двумя серверами.
Уведомление об изменении базы данных - это нечто другое, оно не используется для синхронизации между серверами, а скорее для уведомления сервера об изменениях набора результатов для клиентов, в основном в контексте кэшей данных на стороне клиента.
Другие советы
Я бы добавил, что для синхронизации между системами вы можете достичь асинхронного режима, комбинируя потоки и механизм публикации CDC. Если вы решите не использовать Streams для этой цели, вы в конечном итоге будете использовать синхронный режим (я думаю, что это с помощью триггеров), добавляя немного дополнительной нагрузки на каждую транзакцию.