Oracle MV part4_2 競合解消(時間優先)
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 => 'empsecond', type => 'TABLE', ddl_text => 'ALTER TABLE scott_rep.empsecond ADD (timestamp DATE)'); END; /
- 影響のあったオブジェクトのレプリケーション・サポートを再作成します。
BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname => 'scott_rep', oname => 'empsecond', type => 'TABLE', min_communication => TRUE); END; /
- 行が挿入または更新されたときにタイムスタンプを記録するトリガーを作成
BEGIN DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( gname => 'scottrep_repg', type => 'TRIGGER', oname => 'insert_time', sname => 'scott_rep', ddl_text => 'CREATE TRIGGER scott_rep.insert_time BEFORE INSERT OR UPDATE ON scott_rep.empsecond FOR EACH ROW BEGIN IF DBMS_REPUTIL.FROM_REMOTE = FALSE THEN :NEW.TIMESTAMP := SYSDATE; END IF; END;'); END; /
- ターゲット表の列グループを作成します。
BEGIN DBMS_REPCAT.MAKE_COLUMN_GROUP ( sname => 'scott_rep', oname => 'empsecond', column_group => 'empsecond_timestamp_cg', list_of_column_names => 'idsecond,namesecond,timestamp'); END; /
- 指定した表に対して競合解消メソッドを定義します。この例では、以前作成したtimestamp
列を使用して、LATEST TIMESTAMP
競合解消メソッドを指定します。
BEGIN DBMS_REPCAT.ADD_UPDATE_RESOLUTION ( sname => 'scott_rep', oname => 'empsecond', column_group => 'empsecond_timestamp_cg', sequence_no => 1, method => 'LATEST TIMESTAMP', parameter_column_name => 'timestamp'); END; /
- 競合解消メソッドを受信した表に対するレプリケーション・サポートを再生成します。
BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname => 'scott_rep', oname => 'empsecond', type => 'TABLE', min_communication => TRUE); END; /
- レプリケーション・アクティビティを再開します。
BEGIN DBMS_REPCAT.RESUME_MASTER_ACTIVITY ( gname => 'scottrep_repg'); END; /
ご訪問頂き有難う御座います。
当サイトを効率良く使うためにまずは FrontPage を見て下さい。
検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage