Oracle MV part4_1 競合解消(サイト優先)
Oracle において MV マテリアライズド・ビュー とは以下を示します。
- Oracle MV 構築手順 http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/20
競合解消(サイト優先)
競合発生時にサイトを基準に更新の衝突を解消する手順を示す。
マスターサイトでの作業
- master site
server01
- sid
rdb01
- マスターサイトに接続
connect repadmin/repadmin@rdb01
- マスターグループを停止
BEGIN DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY ( gname => 'scottrep_repg'); END; /
- サイトの値を格納する表に、サイトの列を追加します。
BEGIN DBMS_REPCAT.ALTER_MASTER_REPOBJECT ( sname => 'scott_rep', oname => 'empfirst', type => 'TABLE', ddl_text => 'ALTER TABLE scott_rep.empfirst ADD (site VARCHAR2(20))'); END; /
- 影響のあったオブジェクトのレプリケーション・サポートを再作成します。
BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname => 'scott_rep', oname => 'empfirst', type => 'TABLE', min_communication => TRUE); END; /
- 行が挿入または更新されたときにサイトのグローバル名を記録するトリガーを作成
BEGIN DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( gname => 'scottrep_repg', type => 'TRIGGER', oname => 'insert_site', sname => 'scott_rep', ddl_text => 'CREATE TRIGGER scott_rep.insert_site BEFORE INSERT OR UPDATE ON scott_rep.empfirst FOR EACH ROW BEGIN IF DBMS_REPUTIL.FROM_REMOTE = FALSE THEN SELECT global_name INTO :NEW.SITE FROM GLOBAL_NAME; END IF; END;'); END; /
- サイトの優先順位による競合解消メカニズムを使用する列グループに、新しい列が含まれていることを確認する。列グループを作成していない場合は、DBMS_REPCAT.MAKE_COLUMN_GROUPプロシージャを使用して、新しい列グループを作成する。
BEGIN DBMS_REPCAT.MAKE_COLUMN_GROUP ( sname => 'scott_rep', oname => 'empfirst', column_group => 'empfirst_sitepriority_cg', list_of_column_names => 'empno,ename,hiredate,deptno,site'); END; /
- サイトの優先順位の値をレプリケート環境のサイトに割り当てる前に、定義した値を保持するサイトの優先グループを作成する。
BEGIN DBMS_REPCAT.DEFINE_SITE_PRIORITY ( gname => 'scottrep_repg', name => 'empfirst_sitepriority_pg'); END; /
- レプリケーション環境のサイトごとに優先順位の値を定義します。
BEGIN DBMS_REPCAT.ADD_SITE_PRIORITY_SITE ( gname => 'scottrep_repg', name => 'empfirst_sitepriority_pg', site => 'rdb01', priority => 50); END; / BEGIN DBMS_REPCAT.ADD_SITE_PRIORITY_SITE ( gname => 'scottrep_repg', name => 'empfirst_sitepriority_pg', site => 'xdv1', priority => 100); END; /
- SITE
PRIORITY解消メソッドをレプリケートをレプリケート表に追加します。
BEGIN DBMS_REPCAT.ADD_UPDATE_RESOLUTION ( sname => 'scott_rep', oname => 'empfirst', column_group => 'empfirst_sitepriority_cg', sequence_no => 1, method => 'SITE PRIORITY', parameter_column_name => 'site', priority_group => 'empfirst_sitepriority_pg'); END; /
- 競合解消メソッドを受信した表に対するレプリケーション・サポートを再生成します。
BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname => 'scott_rep', oname => 'empfirst', type => 'TABLE', min_communication => TRUE); END; /
- レプリケーション・アクティビティを再開します。
BEGIN DBMS_REPCAT.RESUME_MASTER_ACTIVITY ( GNAME => 'scottrep_repg'); END; /
ご訪問頂き有難う御座います。
当サイトを効率良く使うためにまずは FrontPage を見て下さい。
検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage