Oracle Advanced Replication 1 例 9i to 10g MVR

Karsus發表於2009-01-14

這個例子很簡單,9i to 10g

只有一個Table, Single Master Site。

是近期的一個應用需求,順便把當時的一些步驟記錄下。

而且測試下了,GLOBAL_NAME=FALSE也是可以的,但跟一個資深DBA聊起來的時侯,他說,一般的應用這樣沒問題,但是用到Procedure的地方可能會出事,但是他想不起來具體的例子了...

[@more@]

1. Production AS à Production AY. Only one table ITEM.

2. AS: 9208 AY:10203

3. Initialization Parameters:

Compatible > 9.0.0.1 V

Global_Names=True 我打算試試False可不可以結果是可以的

Job_Queue_Processes 7

Open_Links 4

Parallel_Automatic_Tuning FALSE—Parallel方式未使用。

Processes 800

Replication_Depandency_Tracking TRUE

UTL_FILE_DIR /u01/app/oracle/admin/as/udump

4. 建立複製管理帳戶REPADMIN.

exec dbms_repcat_admin.grant_admin_any_schema(username=>'REPADMIN');

grant comment any table to repadmin;

grant lock any table to repadmin;

grant select any dictionary to repadmin;

註冊接收使用者

exec dbms_repcat_admin.register_user_repgroup(username=>'REPADMIN',privilege_type=>'RECEIVER',list_of_gnames=>NULL);

註冊SNAPADMIN的代理

exec dbms_repcat_admin.register_user_repgroup(username=>'REPADMIN',privilege_type=>'PROXY_SNAPADMIN',list_of_gnames=>NULL);

grant connect,resource to repadmin;

grant select any table to repadmin;

建立清除延遲序列的JOB

exec dbms_defer_sys.schedule_purge(next_date=>sysdate,interval=>'sysdate+1/24',delay_seconds=>0);

MV Server建立MVADMIN --- Materialized View Admin

exec dbms_repcat_admin.grant_admin_any_schema(username=>'MVADMIN');

grant comment any table,lock any table,select any dictionary to mvadmin;

指定Propagator帳戶

exec dbms_defer_sys.register_propagator(username=>'MVADMIN');

grant create session to mvadmin;

grant alter any materialized view to mvadmin;

註冊成為接受者

exec dbms_repcat_admin.register_user_repgroup(username=>'MVADMIN',privilege_type=>'RECEIVER',list_of_gnames=>NULL);

建立MV SITE MASTER SITEPUBLIC DB LINK.

create public database link AS connect to repadmin identified by "rep" using 'AS';

建立複製組

exec dbms_repcat.create_master_repgroup(gname=>'AS_AY');

新增Table到複製組

exec dbms_repcat.create_master_repobject(gname=>'AS_AY',type=>'TABLE',oname=>'ITEM',sname=>'PT',use_existing_object=>TRUE,copy_rows=>FALSE);

PK會自動複製,其他索引需手動新增。

exec dbms_repcat.create_master_repobject(gname=>'AS_AY',type=>'INDEX',oname=>'ITEM2',sname=>'PT',use_existing_object=>TRUE,copy_rows=>FALSE);

…….

生成複製支援

exec dbms_repcat.generate_replication_support(sname=>'TP',oname=>'ITEM',type=>'TABLE',min_communication=>TRUE);

開始複製

exec dbms_repcat.resume_master_activity(gname=>'AS_AY');

建立MV LOG,這裡必須單獨給User grant create trigger table的許可權

繼續在MV SITE上執行。

MVADMIN 登入

建立MV

exec dbms_repcat.create_mview_repgroup(gname=>'AS_AY',master=>'AS',propagation_mode=>'ASYNCHRONOUS');

建立重新整理組

exec dbms_refresh.make(name=>'mvadmin.refresh',list=>'PT.ITEM',next_date=>sysdate,interval=>'sysdate+1/24');

新增新的refresh objects可用dbms_refresh.add

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10856805/viewspace-1016100/,如需轉載,請註明出處,否則將追究法律責任。

相關文章