Oracle stream replication初步研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

淘宝网yekai第1页2020-1-28Email:yekai@taobao.com谢中辉Msn:xzh2000@hotmail.comOraclestreamreplication初步研究OracleStream体系结构在Oracle9iR2中,引进了全新的信息共享机制,即OracleStream。OracleStream通过AdvancedQueuing、LogMiner和JobScheduling等技术,构架集“捕获”、“传播”、“应用”为一体的企业数据共享通道。Oraclestream的处理过程主要分为三个方面:“捕获(Capture)”“传播(Propagate)”“应用(Apply)”捕获进程是一个后台进程,它负责从redologs(onlineredolog与archiveredolog)中挖掘数据库的改变(含ddl与dml),并把获取的“改变”包装成LCRs(LogicalChangeRecords)写入消息队列中,待“传播”进程传送到指定的目标队列中。传播进程作为jobqueues进行调度,它负责把源消息队列中的LCRs传播到目标消息队列中,它提供了“one-to-one“、“one-to-mulit“、”mulit-to-mulit“等消息传播方案,不仅可以在oracle环境中传播消息,也可以在异构环境中传播消息。应用进程是一个后台进程,它负责从消息队列中提取LCRs,并根据应用进程预先定义的规则,把附合规则的“改变”应用到目标数据库中。图1one-to-one传播过程如图1所示,它是Oraclestreamreplication的单源复制结构,从Capture、Propagate、Apply等演示了streamreplication的“one-to-one”过程;如果将来业务发生变化,很容易将将“one-to-one”的传播结构扩展成“one-to-multi”的传播结构;无论是“one-to-one”结构还是“one-to-multi”的结构,它们都是单源复制结构,单源复制结构的特点就是:淘宝网yekai第2页2020-1-28Email:yekai@taobao.com谢中辉Msn:xzh2000@hotmail.com一次捕获,多次传播。图2multi-to-multi传播过程如图2所示,它是Oraclestreamreplication的多源复制结构,从Capture、Propagate、Apply等演示了streamreplication的“multi-to-multi”过程;多源传播还有其它的结构,但无论那种多源结构,都必须考虑“changecycling”及“updateconflict“等现象。淘宝网yekai第3页2020-1-28Email:yekai@taobao.com谢中辉Msn:xzh2000@hotmail.com单源streamreplication配置步骤1实例的初始化参数设置(所有实例)altersystemsetjob_queue_processes=10scope=both;altersystemsetaq_tm_processes=10scope=both;altersystemsetglobal_names=truescope=both;altersystemsetcompatible='9.2.0'scope=spfile;altersystemsetlog_parallelism=1scope=spfile;shutdownimmediate;startup;说明:源数据库的job_queue_processes与aq_tm_processes参数必须设置2,如果=2时将会触发bug,在“one-to-mulit”的复制环境中,job_queue_processes与aq_tm_processes参数设置值最好目标实例数,否则将影响性能。Streamreplication中的sourceinstance必须处于archivelog模式,destinationinstance则可以处于noarchivelog模式;除非日志切换非常频繁,不建议开多个capture进程,如果要开多个capture进程的话,需要修改logmnr_max_persistent_sessions参数的值。2流复制管理员创建及授权(sourcedatabase)connsys/&source_passwd@&source_databaseassysdbacreatetablespace&stream_tsdatafile'&datafile'size100mautoextendon;createuserstrmadminidentifiedby&passworddefaulttablespace&stream_ts;alteruserstrmadminquotaunlimitedon&stream_ts;grantconnect,resource,select_catalog_roletostrmadmin;grantexecuteondbms_aqadmtostrmadmin;grantexecuteondbms_capture_admtostrmadmin;grantexecuteondbms_propagation_admtostrmadmin;grantexecuteondbms_streams_admtostrmadmin;grantexecuteondbms_apply_admtostrmadmin;grantexecuteondbms_flashbacktostrmadmin;connsys/&source_passwd@&source_databaseassysdbabegindbms_rule_adm.grant_system_privilege(privilege=dbms_rule_adm.create_rule_set_obj,grantee='strmadmin',grant_option=false);dbms_rule_adm.grant_system_privilege(privilege=dbms_rule_adm.create_rule_obj,grantee='strmadmin',grant_option=false);end;/淘宝网yekai第4页2020-1-28Email:yekai@taobao.com谢中辉Msn:xzh2000@hotmail.com3创建队列及队列表(sourcedatabase)connectstrmadmin/&password@&source_database;execdbms_streams_adm.set_up_queue();4流复制管理员创建及授权(targetdatabase)connsys/&target_password@&target_databaseassysdbacreatetablespace&stream_tsdatafile'&datafile'size100mautoextendon;createuserstrmadminidentifiedby&passworddefaulttablespace&stream_ts;alteruserstrmadminquotaunlimitedon&stream_ts;grantconnect,resource,select_catalog_roletostrmadmin;grantexecuteondbms_aqadmtostrmadmin;grantexecuteondbms_capture_admtostrmadmin;grantexecuteondbms_propagation_admtostrmadmin;grantexecuteondbms_streams_admtostrmadmin;grantexecuteondbms_apply_admtostrmadmin;grantexecuteondbms_flashbacktostrmadmin;connsys/&target_passwd@&target_databaseassysdbabegindbms_rule_adm.grant_system_privilege(privilege=dbms_rule_adm.create_rule_set_obj,grantee='strmadmin',grant_option=false);dbms_rule_adm.grant_system_privilege(privilege=dbms_rule_adm.create_rule_obj,grantee='strmadmin',grant_option=false);end;/5创建队列及队列表(targetdatabase)connectstrmadmin/&passwd@&target_database;execdbms_streams_adm.set_up_queue();6创建源数据库的dblinkconnectstrmadmin/&passwd@&source_database;createdatabaselink&link_nameconnecttostrmadminidentifiedby&passwdusing‘&tns’;7创建目标数据库的dblinkconnectstrmadmin/&passwd@&target_database;createdatabaselink&link_nameconnecttostrmadminidentifiedby&passwdusing‘&tns’;说明:dblink创建以后,必须测试是否可以连通。淘宝网yekai第5页2020-1-28Email:yekai@taobao.com谢中辉Msn:xzh2000@hotmail.com8关于LogMiner表空间配置(sourcedatabaseonly)connsys/&source_passwd@source_dbatabaseassysdba;createtablespace&logmnr_tsdatafile'&datafile'size25mreuseautoextendon;executedbms_logmnr_d.set_tablespace('&logmnr_ts');说明:如果不配置logminer,将会使用system表空间(或sysaux表空间)9创建测试模式并授权(sourcedatabaseandtargetdatabase)connect/assysdba;createuserscottidentifiedbytigerdefaulttablespace&stream_tsalteruserscottquotaunlimitedon&stream_ts;grantconnect,resourcetoscott;connectscott/tiger;createtabledept(idintprimarykey,namevarchar2(20));grantallondepttostrmadmin;altertablescott.deptaddsupplementalloggrouplog_group_dept_pk(id)always;说明:supplementallog仅仅在系统中存在组合(复合)索引时起作用,如果你的系统中不存在组合索引,就没有必要添加supplementallog;如果你的源数据库中添加supplementallog,在目标数据库中通知要删除的(节省归档空间)。10配置传播进程(sourcedatabaseonly)connectstrmadmin/&password@source_databasebegindbms_streams_adm.add_table_propagation_rules

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功