ITPub博客

首页 > 数据库 > Oracle > Oracle Advanced Replication 1 例 9i to 10g MVR

Oracle Advanced Replication 1 例 9i to 10g MVR

原创 Oracle 作者:Karsus 时间:2009-01-14 14:01:12 0 删除 编辑

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

请登录后发表评论 登录
全部评论
  • 博文量
    43
  • 访问量
    150221