Oracle MV テスト サイト優先 競合発生あり

Oracle において MV マテリアライズド・ビュー とは以下を示します。

マテリアライズド・ビュー サイトの優先順位

  1. 優先順位競合解消メソッドを定義したオブジェクト
     scott_rep.empfirst
    
  2. オブジェクトのレコードの確認
     conn scott_rep/tiger
     select * from empfirst;
    

マテリアライズド・ビュー テスト手順

  1. 下記テスト内容をそれぞれ実施
    1. (競合有り) レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(マスターサイト優先)
    2. (競合有り) レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(レプリケーションサイト優先)
    3. (競合あり) レプリケーションサイト表を行削除、マスターサイト表を行削除→結果:競合発生
  2. 高速リフレッシュの実行(レプリケーションサイトで実行)
     conn mviewadmin/mviewadmin
     execute dbms_refresh.refresh('mviewadmin.scottrep_refg');
    
  3. 競合の確認(マスターサイトで実行)
     conn repadmin/repadmin
    
     select deferred_tran_id,origin_tran_db,
       start_time,error_msg,destination
       from deferror;
    
  4. 競合の確認(レプリケーションサイトで実行)
     conn mviewadmin/mviewadmin
    
     select deferred_tran_id,origin_tran_db,
       start_time,error_msg,destination
       from deferror;
    

※下記テスト内容詳細

  1. (競合有り) レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(マスターサイト優先)
     □■master insert
     insert into empfirst (empno,ename,hiredate,deptno)
     values (4444,'A_MASTER',sysdate,4);
     commit;
    
     ■■replication insert
     insert into empfirst (empno,ename,hiredate,deptno)
     values (4444,'A_REP',sysdate,5);
     commit;
    
    1. マスターサイトのレコードを残す競合解消手順→レプリケーションサイト表レコードを削除。マスターサイトのレコードはリフレッシュ後に存在したことを確認。
       ■■replication stop
       conn mviewadmin/mviewadmin
       exec dbms_reputil.replication_off;
      
       □■master stop
       conn repadmin/repadmin
       exec dbms_reputil.replication_off;
      
       ■■replication delete
       conn scott_rep/tiger
       delete from empfirst
       where empno=4444;
       commit;
      
       ■■replication start
       conn mviewadmin/mviewadmin
       exec dbms_reputil.replication_on;
      
       □■master start
       conn repadmin/repadmin
       exec dbms_reputil.replication_on;
      
       ■■replication deferror
       conn mviewadmin/mviewadmin
       exec dbms_defer_sys.delete_error(null,null)
      
       □■master deferror
       conn repadmin/repadmin
       exec dbms_defer_sys.delete_error(null,null)
      
       □■master 競合の確認
       conn repadmin/repadmin
       select deferred_tran_id,origin_tran_db,
         start_time,error_msg,destination
         from deferror;
      
  2. (競合有り) レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(レプリケーションサイト優先)
     □■master insert
     conn scott_rep/tiger
     insert into empfirst (empno,ename,hiredate,deptno) values (4445,'A_MASTER',sysdate,4);
     commit;
    
     ■■replication insert
     conn scott_rep/tiger
     insert into empfirst (empno,ename,hiredate,deptno) values (4445,'A_REP',sysdate,5);
     commit;
    
    1. レプリケーションサイトのレコードを残す競合解消手順→マスターサイト表を削除したが競合解消後には、レプリケーションサイト表のレコードも削除されているので、再度インサートする必要がある。
       □■master stop
       conn repadmin/repadmin
       exec dbms_reputil.replication_off;
      
       □■master delete
       conn scott_rep/tiger
       delete from empfirst
       where empno=4445;
       commit;
      
       □■master start
       conn repadmin/repadmin
       exec dbms_reputil.replication_on;
      
       □■master deferror
       conn repadmin/repadmin
       exec dbms_defer_sys.delete_error(null,null)
      
       □■master 競合の確認
       conn repadmin/repadmin
       select deferred_tran_id,origin_tran_db,
         start_time,error_msg,destination
         from deferror;
      
  3. (競合あり) レプリケーションサイト表を行削除、マスターサイト表を行削除→結果:競合発生
     □■master delete
     conn scott_rep/tiger
     delete from  empfirst
     where empno=1111
     ;
     commit
     ;
    
     ■■replication delete
     conn scott_rep/tiger
     delete from  empfirst
     where empno=1111
     ;
     commit
     ;
    
    1. 競合解消手順
       □■master deferror
       conn repadmin/repadmin
       exec dbms_defer_sys.delete_error(null,null)
      
       □■master 競合の確認
       conn repadmin/repadmin
       select deferred_tran_id,origin_tran_db,
         start_time,error_msg,destination
         from deferror;
      

ご訪問頂き有難う御座います。 当サイトを効率良く使うためにまずは FrontPage を見て下さい。 検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage