这个例子很简单,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 SITE的PUBLIC 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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10856805/viewspace-1016100/