New to this topic - in my current environment we are not doing any replication but we use materialized views frequently in order to achieve performance gains on complex views that are in turn used by web applications (obviously these are only used when the data involved is not completely time-sensitive, we do nightly refreshes of the materialized views). Note that we are doing Complete, On Demand refreshes on a specified schedule.
The issue I am running into is it seems that Oracle has used some internal process to determine the 'master' table and when DML operations occur on the master, the MV becomes invalid. To be honest we don't really care whether the master table has any inserts, updates, deletes as we just want to completely refresh the MV every night - unfortunately when the MV goes invalid it prevents refreshes.
So my question is can I manually set the master table to something like SYS.DUAL so that the MV never goes invalid or is there another workaround?
Failing this I suppose instead of using MVs I would just schedule a nightly CTAS.
Edit: Added the Oracle note # in comments below - synopsis is that when the MV is in the same database as the master table, DML on master table will cause the MV to go invalid ("Needs Recompile" specifically). Certainly I can schedule a nightly recompile but this doesn't seem elegant.
To downvoter - this is my 2nd question here, could you express what makes the question so flawed so I don't keep losing points in future posts? :)