Oracle MV テスト サイト優先 競合発生なし
Oracle において MV マテリアライズド・ビュー とは以下を示します。
- Oracle MV 構築手順 http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/20
マテリアライズド・ビュー サイトの優先順位
- マスターサイト(rdb01)
50
- レプリケーションサイト(xrdb04)
100
- 優先順位競合解消メソッドを定義したオブジェクト
scott_rep.empfirst
- オブジェクトのレコードの確認
conn scott_rep/tiger select * from empfirst;
マテリアライズド・ビュー テスト手順
- 下記テスト内容をそれぞれ実施
- マスターサイト 挿入→結果:○
- レプリケーションサイト 挿入→結果:○
- レプリケーションサイト 行削除→結果:○
- マスターサイト 行削除→結果:○
- (競合なし) マスターサイト 更新→結果:○
- (競合なし) レプリケーションサイト 更新→結果:○
- (競合有り) マスターサイトを更新して、レプリケーションサイトを更新。レプリケーションサイトが優先されるか→結果:○
- (競合有り) レプリケーションサイト表を更新して、マスターサイト表を行削除→結果:競合発生
- (競合有り) レプリケーションサイト表を行削除、マスターサイト表を更新→結果:行削除○
- 高速リフレッシュの実行(レプリケーションサイトで実行)
conn mviewadmin/mviewadmin execute dbms_refresh.refresh('mviewadmin.scottrep_refg');
- 競合の確認(マスターサイトで実行)
conn repadmin/repadmin select deferred_tran_id,origin_tran_db, start_time,error_msg,destination from deferror;
- 競合の確認(レプリケーションサイトで実行)
conn mviewadmin/mviewadmin select deferred_tran_id,origin_tran_db, start_time,error_msg,destination from deferror;
※下記テスト内容詳細
- マスターサイト 挿入→結果:○
insert into empfirst (empno,ename,hiredate,deptno) values (5555,'ABC',sysdate,55); commit;
- レプリケーションサイト 挿入→結果:○
insert into empfirst (empno,ename,hiredate,deptno) values (7777,'JEF',sysdate,77); commit;
- レプリケーションサイト 行削除→結果:○
delete from empfirst where empno=1112; commit;
- マスターサイト 行削除→結果:○
delete from empfirst where empno=7654; commit;
- (競合なし) マスターサイト 更新→結果:○
update empfirst set ename='JEF_UPDATE' where empno = 7777; commit;
- (競合なし) レプリケーションサイト 更新→結果:○
update empfirst set ename='JEF_UP_R' where empno = 7777; commit;
- (競合有り)
マスターサイトを更新して、レプリケーションサイトを更新。レプリケーションサイトが優先されるか→結果:○
□■master update update empfirst set ename='JEF_MASTER' where empno = 7777; commit; ■■replication update update empfirst set ename='JEF_REPLI' where empno = 7777; commit;
- (競合有り)
レプリケーションサイト表を更新して、マスターサイト表を行削除→結果:競合発生
■■replication update update empfirst set ename='JEF_DELETE' where empno = 7777; commit; □■master delete delete from empfirst where empno=7777; commit;
- 競合解消手順
■■replication stop conn mviewadmin/mviewadmin exec dbms_reputil.replication_off; ■■replication delete conn scott_rep/tiger delete from empfirst where empno=7777; commit; ■■replication start conn mviewadmin/mviewadmin 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 select conn repadmin/repadmin select deferred_tran_id,origin_tran_db, start_time,error_msg,destination from deferror;
- 競合解消手順
- (競合有り)
レプリケーションサイト表を行削除、マスターサイト表を更新→結果:行削除○
■■replication deferror delete from empfirst where empno=5555; commit; □■master update update empfirst set ename='ABC_MAS' where empno = 5555; commit;
ご訪問頂き有難う御座います。
当サイトを効率良く使うためにまずは FrontPage を見て下さい。
検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage