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;
※下記テスト内容詳細
- (競合有り)
レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(マスターサイト優先)
□■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;
- マスターサイトのレコードを残す競合解消手順→レプリケーションサイト表レコードを削除。マスターサイトのレコードはリフレッシュ後に存在したことを確認。
■■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;
- マスターサイトのレコードを残す競合解消手順→レプリケーションサイト表レコードを削除。マスターサイトのレコードはリフレッシュ後に存在したことを確認。
- (競合有り)
レプリケーションサイト表を挿入、マスターサイト表を挿入→結果:競合発生(レプリケーションサイト優先)
□■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;
- レプリケーションサイトのレコードを残す競合解消手順→マスターサイト表を削除したが競合解消後には、レプリケーションサイト表のレコードも削除されているので、再度インサートする必要がある。
□■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;
- レプリケーションサイトのレコードを残す競合解消手順→マスターサイト表を削除したが競合解消後には、レプリケーションサイト表のレコードも削除されているので、再度インサートする必要がある。
- (競合あり)
レプリケーションサイト表を行削除、マスターサイト表を行削除→結果:競合発生
□■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 ;
- 競合解消手順
□■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