alias DEMO='rlwrap sqlplus DEMO/"secret"@bakura:1521/NIHILUS' drop table T1 purge; create table T1 ( id number generated always as identity, n1 number(1), c1 varchar2(10), d1 DATE ); alter table T1 add constraint T1_PK primary key (ID); -- infinite_update2.sql whenever sqlerror exit failure declare i NUMBER; begin i:=0; loop i:=i+1; insert into T1(n1,c1,d1) values(mod(i,3),DBMS_RANDOM.string('a',10),sysdate); commit; dbms_session.sleep(1); end loop; end; / drop materialized view MW0; drop materialized view MW1; drop materialized view MW2; create materialized view MW0 as select * from T1 where n1=0; create materialized view MW1 as select * from T1 where n1=1; create materialized view MW2 as select * from T1 where n1=2; alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; select max(d1) from MW0; select max(d1) from MW1; select max(d1) from MW2; create materialized view log on T1 with primary key including new values; set lines 256 col log_table for a30 col log_trigger for a30 col primary_key for a3 head PK select log_table,log_trigger,primary_key from dba_mview_logs where log_owner='DEMO' and MASTER='T1'; -- on snap "server" site set lines 256 col owner for a15 col name for a25 col master_owner for a15 col master for a25 col master_link for a25 col refresh_method for a15 col type for a10 col status for a7 col snaptime for a20 select snap.owner ,snap.name ,snap.snapid ,snap.status ,slog.snaptime ,snap.master_owner ,snap.master ,snap.refresh_method ,snap.type ,snap.master_link from sys.slog$ slog join dba_snapshots snap on slog.snapid=snap.snapid where slog.mowner='DEMO' and slog.master='T1'; col snapname for a30 col snapsite for a30 col snaptime for a30 select r.name snapname, snapid, nvl(r.snapshot_site, 'not registered') snapsite, snaptime from sys.slog$ s, dba_registered_snapshots r where s.snapid=r.snapshot_id(+) and mowner='DEMO' and master='T1'; exec dbms_mview.refresh('MW0'); exec dbms_mview.refresh('MW1'); exec dbms_mview.refresh('MW2'); -- point of view of snap "client" select last_refresh_date,sysdate from dba_mviews where mview_name='MW0'; -- point of view of snap "server" select sysdate,last_refresh from dba_snapshots where name='MW0'; select log_table from dba_mview_logs where master='T1'; select count(*) from DEMO.MLOG$_T1; exec dbms_refresh.make('MWGROUP0', list=>'MW0,MW1', next_date=>null, interval=>'null',parallelism=>2); exec dbms_refresh.refresh('MWGROUP0'); -- https://www.oracleplsqltr.com/2021/03/14/how-to-unregister-materialized-view-from-source-db/ exec dbms_mview.unregister_mview(mviewowner=>'DEMO',mviewname=>'MW2',mviewsite=>'NIHILUS'); exec dbms_mview.purge_mview_from_log(mview_id=>9); select segment_name,bytes/1024 Kb from dba_segments where segment_name='MLOG$_T1';