В чем разница между Oracle Streams и сбором данных изменений? - PullRequest
11 голосов
/ 07 ноября 2008

Существует несколько похожих технологий Oracle - Oracle Streams, Oracle Data Capture и уведомление об изменении базы данных.

Каковы различия между ними?

Они связаны с Oracle Advanced Queuing?

Ответы [ 2 ]

9 голосов
/ 09 ноября 2008

Oracle CDC предназначен для регистрации изменений в таблицах БД, а изменения хранятся в специальных таблицах Oracle. Существует два режима работы CDC: асинхронный (на основе Java) или синхронный (на основе триггеров БД, повышенные издержки производительности).

Oracle Streams расположен поверх Oracle CDC, и это полный транспортный механизм (например, HTTP) для синхронизации данных между двумя серверами. Он основан на технологии Oracle Advanced Queues и обеспечивает высокую производительность и надежность.

Как Oracle CDC, так и Streams обычно используются для синхронизации данных между серверами Oracle DB ... С Oracle CDC вам не нужно использовать Oracle Streams, например, для. Вы можете написать свои собственные процедуры экспорта данных, которые создают плоские файлы для синхронизации между двумя серверами БД, тогда как в Streams у вас должна быть сетевая связь между двумя серверами.

Оповещение об изменении базы данных - это нечто другое, оно не используется для синхронизации между серверами, а вместо этого больше используется для уведомления сервера об изменениях набора результатов для клиентов, в основном в контексте кэшей данных на стороне клиента.

0 голосов
/ 13 апреля 2010

Я бы добавил, что для синхронизации между системами вы можете достичь асинхронного режима, комбинируя потоки и механизм публикации CDC. Если вы решите не использовать Streams для этой цели, вы в конечном итоге будете использовать синхронный режим (я думаю, что это с помощью триггеров), добавляя немного дополнительной нагрузки на каждую транзакцию.

...