ответ

6

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

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

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

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

+0

Будьте осторожны с термином «resultset», полагают все, поскольку вы используете запрос, чтобы указать, в каких таблицах вы хотите, чтобы DCN был активным, на этом только результаты запроса вызывали уведомление. Все DCN заботится о статье FROM. Любые изменения в любой таблице в FROM вызывают уведомление. – 2008-11-10 15:51:29

0

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