Oracle MV part6 マテリアライズド・ビュー・グループの作成

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

マスターサイトでの作業

※下記手順に関してはマスターサイトでの作業であるので注意

  1. マスターサイトにマテリアライズド・ビュー・ログを作成(マスターサイトでの作業)
  2. レプリケーションを再開(マスターサイトでの作業)

レプリケーションサイトでの作業

  1. マスターサイトにマテリアライズド・ビュー・ログを作成(マスターサイトでの作業)
     CONNECT scott_rep/tiger@rdb01
     CREATE MATERIALIZED VIEW LOG ON scott_rep.empfirst;
     CREATE MATERIALIZED VIEW LOG ON scott_rep.empsecond;
    
  2. データベースリンクを作成
     CONNECT scott_rep/tiger
     CREATE DATABASE LINK rdb01 CONNECT TO proxy_refresher
     IDENTIFIED BY proxy_refresher;
    
  3. マテリアライズド・ビュー・グループを作成
     CONNECT mviewadmin/mviewadmin
     BEGIN
        DBMS_REPCAT.CREATE_MVIEW_REPGROUP (
            gname => 'scottrep_repg',
            master => 'rdb01');
     END;
     /
    
  4. リフレッシュグループを作成
     BEGIN
        DBMS_REFRESH.MAKE (
           name => 'mviewadmin.scottrep_refg',
           list => '',
           next_date => SYSDATE+1/1440,
           interval => 'SYSDATE + 1/144');
     END;
     /
    
  5. マテリアライズド・ビュー・グループにオブジェクトを追加
     CONNECT system/manager
     grant create materialized view to scott_rep;
    
     CONNECT scott_rep/tiger
     CREATE MATERIALIZED VIEW scott_rep.empfirst
       REFRESH FAST FOR UPDATE
       AS SELECT * FROM scott_rep.empfirst@rdb01;
     CREATE MATERIALIZED VIEW scott_rep.empsecond
       REFRESH FAST FOR UPDATE
       AS SELECT * FROM scott_rep.empsecond@rdb01;
    
     CONNECT mviewadmin/mviewadmin
     BEGIN
        DBMS_REPCAT.CREATE_MVIEW_REPOBJECT (
           gname => 'scottrep_repg',
           sname => 'scott_rep',
           oname => 'empfirst',
           type => 'SNAPSHOT',
           min_communication => TRUE);
     END;
     /
     CONNECT mviewadmin/mviewadmin
     BEGIN
        DBMS_REPCAT.CREATE_MVIEW_REPOBJECT (
           gname => 'scottrep_repg',
           sname => 'scott_rep',
           oname => 'empsecond',
           type => 'SNAPSHOT',
           min_communication => TRUE);
     END;
     /
    
  6. リフレッシュ・グループにオブジェクトを追加
     BEGIN
        DBMS_REFRESH.ADD (
           name => 'mviewadmin.scottrep_refg',
           list => 'scott_rep.empfirst');
     END;
     /
     BEGIN
        DBMS_REFRESH.ADD (
           name => 'mviewadmin.scottrep_refg',
           list => 'scott_rep.empsecond');
     END;
     /
    
  7. レプリケーションを再開(マスターサイトでの作業)
     CONNECT repadmin/repadmin@rdb01
     BEGIN
        DBMS_REPCAT.RESUME_MASTER_ACTIVITY (
           gname => 'scottrep_repg');
     END;
     /
    

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