0
votes

We have few Materialized Views created on a remote database (using dblink) which gets created based on views in our MAIN database. Current requirement is to update these Materialized views on the remote database every few minutes.

  1. Can we do fast refresh and have the MVLogs created on the remote database instead of the MAIN database?
  2. Since the view that is used to crate MView has references to multiple tables, should the MVLog be created on all the tables that the view uses? If yes, would that be an overhead on the MAIN db?
  3. Are there any other options through which we can refresh the MView on the remote db more often without affecting the performance of the MAIN db?
1

1 Answers

0
votes
  1. Materialized view logs need to be created in the database where the table resides. Assuming all the tables reside on the main database, all the materialized view logs would need to be created there.
  2. Assuming that the materialized view is fast refreshable, you'd need materialized view logs on every table, yes. That will certainly create an overhead-- materialized view logs have to be maintained synchronously.
  3. Oracle has more sophisticated replication technologies that, among other things, put less load on the primary database. Oracle GoldenGate is the strategic streaming solution going forward. Streams is an old technology that would let you do real time replication without additional licensing but the terminal release of Streams is in 18c.