6.向主体组中添加复制对象
a)添加表:
begindbms_repcat.create_master_repobject(gname=>’sh_rep’,type=>’TABLE’,oname=>’CREDIT_CARD’sname=>’SHORACL’use_existing_object=>TRUE,copy_rows=>TRUE);end;
b)添加索引
begindbms_repcat.create_master_repobject(gname=>’sh_rep’,type=>’INDEX’,oname=>’INDEX_CREDIT_CARD’sname=>’SHORACL’use_existing_object=>TRUE,copy_rows=>FALSE);end;/
7.如果添加的表没有主键需要设置可以代替主键的列或者列的集合
begindbms_repcat.set_columns(sname=>’SHORACL’,oname=>’CREDIT_CARD’,column_list=>’CREDIT_CARD_ID’);end;/
8.在主体组中的数据对象可以被复制之前,必须为他们生成复制支持。该方法为复制创建必要的触发器、包或者存储过程:
begindbms_repcat.generate_replication_support(sname=>’SHORACL’,oname=>’CREDIT_CARD’,type=>’TABLE’,min_communication=>TRUE);end;/
9.为快速刷新创建实体化视图日志:
creatematerializedviewlogonSHORACL.CREDIT_CARD;
如果是没有主键的表示用一下语句:
creatematerializedviewlogonSHORACL.CREDIT_CARDwithrowidexcludingnewvalues;
10.启动复制:
begindbms_repcat.resume_master_activity(name=>’sh_rep’);end;/
二.设置实体化视图站点。
1.创建复制管理员并授予相应的权限:
disconnect;connectsystem/passwd@BJ;createusermvadminidentifiedbymvadmin;begindbms_repcat_admin.grant_admin_any_schema(username=>’mvadmin’);end;/grantcommentanytabletomvadmin;grantlockanytabletomvadmin;grantselectanydictionarytomvadmin;
2.注册传播方:
begindbms_defer_sys.register_propagator(username=>’mvadmin’);end;/
3.公共数据库连接。需要每个复制需要创建三个数据库连接。公共数据库连接指定数据库的全局名称:
createpublicdatabaselinkORACLSHusing’oracle.shanghai.com’;
Using子句后跟的是全局数据库名或者是连接字符串。
createpublicdatabaselinkORACLSHusing’(description=(address=(protocol=tcp)(host=127.0.0.1)(port=1521))(connect_data=(service_name=oracl)))’
4.建立清除延迟事务队列调度作业:
disconnect;connectmvadmin/mvadmin@BJ;begindbms_defer_sys.schedule_purge(next_date=>sysdate,interval=>’/*1:hr*/sysdate+1’,delay_seconds=>0,rollback_segment=>’’);end;
5.建立复制管理员mvadmin的数据库连接:
createdatabaselinkORACLSHconnecttoproxy_bjoracleidentifiedbyproxy_bjoralceConnectto...Identifiedby...子句指明用什么用户连接远程数据库
6.建立复制调度数据库连接作业:
begindbms_defer_sys.schedule_push(destination=>’ora92zjk’,interval=>’/*1:hr*/sysdate+1’,next_date=>sysdate,stop_on_error=>false,delay_seconds=>0,parallelism=>0);end;/
7.授予SHORACL用户(对应SHORACL方案)
相应的权限建立实体化视图:disconnect;connectsystem/passwd@BJ;grantaltersessiontocrm;grantcreateclustertocrm;grantcreatedatabaselinktocrm;grantcreatesequencetocrm;grantcreatesessiontocrm;grantcreatesynonymtocrm;grantcreatetabletocrm;grantcreateviewtocrm;grantcreateproceduretocrm;grantcreatetriggertocrm;grantunlimitedtablespacetocrm;grantcreatetypetocrm;grantcreateanysnapshottocrm;grantalteranysnapshottocrm;
8.建立复制方案的数据库连接:
disconnect;connectSHORACL/SHORACL@BJ;createdatabaselinkORACLSHconnecttoORACLidentifiedbyORACL;
复制方案的数据库连接和复制管理员的数据库连接要和system用户间里的对应公共数据库连接使用相同的名字,在调度连接时将使用公共数据库连接中指定的数据库全局名或者连接字符串。
9.建立实体化视图:disconnect;connectmvadmin/mvadmin@BJ;creatematerializedviewSHORACL.CREDIT_CARDrefreshfastwithprimarykeyasselect*fromORACL.CREDIT_CARD@ORACLSH;
@后面是数据库连接名。如果该表没有主键则使用rowid来刷新
creatematerializedviewSHORACL.CREDIT_CARDrefreshfastwithrowidasselect*fromORACL.CREDIT_CARD@ORACLSH;
10.为多个视图建立刷新组:
begindbms_refresh.make(name=>’mvadmin.sh_refresh’,list=>’’,next_date=>sysdate,interval=>’sysdate+1’,implicit_destroy=>false,rollback_seg=>’’,push_deferred_rpc=>true,refresh_after_errors=>false);end;
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/