Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I'd like to know what is advantages of Streams over Advanced Replication. I wanted to use updatable materialized views on my project, but on one forum I read comment that if we don't use very old version of Oracle, it's better to use Streams.

Can you tell me what benefits I'll get if I use Streams, like simpler configuration, better conflicts resolving configuration, more stable work of replication or something else? Client database should be able to work offline.

2 Answers
2

Streams is a much more efficient architecture. Rather than synchronously capturing changes in materialized view logs which adds overhead to the transaction, Streams mines the redo logs that are generated by the change in order to generate the change vector to send to the target system. That also allows the change to be replicated to the other system(s) much more quickly.

Streams is a much more flexible architecture. You can write your own custom apply processes which makes it relatively easy to inject additional processing or logging, to ignore certain changes, etc. You can send a Streams logical change record (LCR) to a JMS queue or to a non-Oracle system (though, of course, you'd need to write code to apply the LCR on the non-Oracle system).

Thanks for your reply, Is it possible to create something similar to materialized vies replication with Streams, like create table on client that contains data that consist of data joined from 2 server tables?
–
SigoraJul 23 '12 at 16:19

@user1524201 - With a custom apply process, sure, you could. It would generally be easier, though, to replicate the tables (or some subset of rows and columns) locally and then create a view (or materialized view) locally.
–
Justin CaveJul 23 '12 at 16:55

My customer don't want that all data be present on client. For example in one shop will be only products that belongs to this place and no more, but on server they store in one table. What did you mean by "With a custom apply process, sure, you could"?
–
SigoraJul 23 '12 at 17:13

Advanced Replication Elements that Cannot Be Migrated to Oracle Streams

Oracle Streams does not support the following:

Replication of changes to tables with columns of the following data types: BFILE, ROWID, and user-defined types (including object types, REFs, varrays, and nested tables)

Synchronous replication

If your current Advanced Replication environment uses these features, then these elements of the environment cannot be migrated to Oracle Streams. In this case, you might decide not to migrate the environment to Oracle Streams now, or you might decide to modify the environment so that it can be migrated to Oracle Streams.