




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级复制与物化视图的选型一、 同步技术的选型(一) 高级复制(Advanced Replication)首先,从总部业务系统的业务需求出发,业务系统只需要对只读的数据进行同步和查询。Oracle高级复制,也成为对称复制,分为多主体复制、物化试图复制和前两种的混合复制(参考图1-1,图1-2)。高级复制主要是用在对称的、等同的数据库表之间的(单向或双向)的复制,以满足分布式应用的需求。但高级复制也有一些缺点:1. 对网络的稳定性和传输速度要求比较高。2. 配置和管理稍微麻烦。图1-1 Multimaster Replication图1-2 Read-Only Materialized View Replication下面是高级复制中的 物化视图架构的创建步骤:1、检查系统初始化参数 global_names 为 TRUE 以及job_queue_processes大于0。2、检查全局数据库名称 上述三个站点的db_domain名称应该相同,只有db_name不同。3、修改上述三个站点中的tnsnames.ora文件4、建立主体站点 建立复制管理用户repadmin;建立主体组和实体化视图组; 注册传播用户; 建立物化视图站点复制管理用户的代理用户;5、设置物化视图站点1 建立物化视图管理用户mvadmin; 注册传播用户;6、设置物化视图站点2 建立物化视图管理用户mvadmin; 注册传播用户;7、建立主体组 创建复制组,并将复制对象添加到复制组; 生成复制支持;8、建立物化视图日志 建立物化视图日志(主站点); 建立物化视图; 将物化视图和相关索引添加到物化视图组; 将物化视图添加到刷新组;对于高级复制中的多主环境和可更新的物化视图环境而言,它的原理是使用Oracle的Internal Trigger捕获DML及DDL操作,并将这些操作封装在Remote Procedure Calls(RPCs)里,并借助Deferred Transaction Queue来传递RPCs并在目标数据库利用Internal Trigger执行传递过来的RPCs从而实现了数据的同步。如果仅仅是高级复制环境中的只读物化视图环境,那么Oracle这里并不会使用Deferred Transaction Queue来传递RPCs,而是直接利用解析物化视图日志的方式来实现数据的同步。(二) 物化视图(MATERIALIZED VIEW)1. 物化视图的种类:物化视图,根据不同的着重点可以有不同的分类1) 按刷新方式分:FAST/COMPLETE/FORCE2) 按刷新时间的不同:ON DEMAND/ON COMMIT3) 按是否可更新:UPDATABLE/READ ONLY4) 按是否支持查询重写:ENABLE QUERY REWRITE/DISABLE QUERY REWRITE物化视图有三种刷新方式:COMPLETE、FAST和FORCE。1) 完全刷新(COMPLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。2) 快速刷新(FAST)采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。3) 采用FORCE方式,Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新。设置REFRESH ON COMMIT的物化视图不能访问远端对象。Oracle物化视图的快速刷新机制是通过物化视图日志完成的。Oracle如何通过一个物化视图日志还可以支持多个物化视图的快速刷新。还可以使用以下语句进行手动刷新:exec DBMS_MVIEW.REFRESH(aics_t_dv);1、完全刷新exec dbms_mview.refresh(list = aics_t_dv,method = c);2、快速刷新exec dbms_mview.refresh(list = aics_t_dv,method = f);2. 对物化视图日志的讨论:物化视图日志表的大小跟日志表的临时存储的数据量有关。比如DEV_INFO表每天增量更新大概为300万条记录。那MLOG$日志表的大小也大概为300M左右。而另外一个日志表RUPD$只是临时表,不会耗用空间。(三) 流复制(Streams Replication)Streams Replication是Oracle 10g新推出的同步技术。Streams Replication基于日志挖掘原理(数据库必须运行在Archive Log模式),可以实现表,用户,数据库级别的同步。Streams Replication在实时性、稳定性、高效率、低消耗(较少的cpu/network资源)等方面更有优势,但凡一些新推出的功能,都或多或少存在一些不确定的因素。Stream对系统的设计与维护方要有相当的对stream技术的把控能力,而大多数系分与DBA对这个东西都没有经验,所以难以推广。(四) 总结从我们的需求出发,我们只需要通过数据库链,建立基于主键的快速刷新的物化视图就可以满足需求,而且易于配置和管理。二、 创建物化视图的步骤创建快速刷新的物化视图的步骤和参考脚本如下所示:Sql代码 1.在源表建立物化视图日志-connect BISONcuCREATE MATERIALIZED VIEW LOG ON MODEL tablespace &BISONCU_SPACE - 日志空间WITH PRIMARY KEY;- 指定为主键类型2.授权给中间用户-此处省略中间用户建立同义词的SQL语句grant select on MODEL to aicentersupport;grant select on MLOG$_MODEL to aicentersupport;3.在目标数据库上创建DBLink4.在目标数据库上创建MATERIALIZED VIEW-connect BISONcsCREATE MATERIALIZED VIEW AICS_MODELTABLESPACE &BISONCS_SPACEREFRESH FAST ON DEMAND -第一次刷新时间 -START WITH to_date(2008-08-08 20:00:00, yyyy-mm-dd hh24:mi:ss) START WITH sysdate -刷新时间间隔。每1天刷新一次,时间为凌晨2点 -NEXT TRUNC(SYSDATE,dd)+1+2/24 NEXT sysdate+1/24/20WITH PRIMARY KEY-USING DEFAULT LOCAL ROLLBACK SEGMENTDISABLE QUERY REWRITE ASselect model_id, status, model_name, manu_id, description, create_time, update_time, sw_versionfrom aics_modellink_aics;5.在目标物化视图上创建索引-例如对DEV_INFO表,需要创建索引,主键索引已经默认创建create index IDX_T_DV_CT on aics_DEV_INFO (CREATE_TIME, UPDATE_TIME) tablespace &BISON_IDX; create index IDX_T_DV_UT on aics_DEV_INFO (UPDATE_TIME) tablespace &BISON_IDX; create index I_T_DV_MSISDN on aics_DEV_INFO (MSISDN) tablespace &BISON_IDX;1.在源表建立物化视图日志-connect BISONcuCREATE MATERIALIZED VIEW LOG ON MODEL tablespace &BISONCU_SPACE - 日志空间WITH PRIMARY KEY;- 指定为主键类型2.授权给中间用户-此处省略中间用户建立同义词的SQL语句grant select on MODEL to aicentersupport;grant select on MLOG$_MODEL to aicentersupport;3.在目标数据库上创建DBLink4.在目标数据库上创建MATERIALIZED VIEW-connect BISONcsCREATE MATERIALIZED VIEW AICS_MODELTABLESPACE &BISONCS_SPACEREFRESH FAST ON DEMAND -第一次刷新时间 -START WITH to_date(2008-08-08 20:00:00, yyyy-mm-dd hh24:mi:ss) START WITH sysdate -刷新时间间隔。每1天刷新一次,时间为凌晨2点 -NEXT TRUNC(SYSDATE,dd)+1+2/24 NEXT sysdate+1/24/20WITH PRIMARY KEY-USING DEFAULT LOCAL ROLLBACK SEGMENTDISABLE QUERY REWRITE ASselect model_id, status, model_name, manu_id, description, create_time, update_time, sw_versionfrom aics_modellink_aics;5.在目标物化视图上创建索引-例如对DEV_INFO表,需要创建索引,主键索引已经默认创建create index IDX_T_DV_CT on aics_DEV_INFO (CREATE_TIME, UPDATE_TIME) tablespace &BISON_IDX; create index IDX_T_DV_UT on aics_DEV_INFO (UPDATE_TIME) tablespace &BISON_IDX; create index I_T_DV_MSISDN on aics_DEV_INFO (MSISDN) tablespace &BISON_IDX; 三、 常见问题考虑因素:1) 数据复制的实时性;虽然不能实现立即更新的实时性,但系统需求只要求在每天凌晨3点能够读取更新完成的数据。所以只要设置ON DEMAND方式,并每天一次或多次进行增量刷新。2) 数据复制对系统性能的影响;测试的性能指标数据数据量耗时磁盘I/O备注创建物化视图100w数据11 secs不包括创建索引的时间。14000w数据2175 secs大概半小时刷新视图100w数据的刷新980.875 secs在其基础上刷新100w14000w数据的刷新10030secs(近3个小时)在其基础上刷新100w物化视图日志新增100w数据N/AN/A3) 数据复制实现方案配置维护的复杂程度:对于快速刷新的物化视图的配置和维护:源数据库只需要建立 物化视图日志,开放源表和物化视图日志的读权限。目标数据库只需要建立快速刷新的物化视图,并创建相关的索引。4) 创建物化视图的查询语句和分区:总部外部服务接口模块在创建物化视图时,只需要引用表的部分字段,而且可以对物化视图进行分区。例如对AICS_DEV_INFO表,创建其物化视图的语句如下:Sql代码 1. CREATEMATERIALIZEDVIEWAICS_DEV_INFO 2. partitionbyhash(IMEI) 3. ( 4. partitionP1tablespace&BISON_OTHER, 5. partitionP2tablespace&BISON_OTHER, 6. partitionP3tablespace&BISON_OTHER, 7. partitionP4tablespace&BISON_OTHER, 8. partitionP5tablespace&BISON_OTHER, 9. partitionP6tablespace&BISON_OTHER, 10. partitionP7tablespace&BISON_OTHER, 11. partitionP8tablespace&BISON_OTHER 12. ) 13. REFRESHFAST 14. ONDEMAND 15. -第一次刷新时间 16. STARTWITHto_date(2008-08-0820:00:00,yyyy-mm-ddhh24:mi:ss) 17. -刷新时间间隔。每1天刷新一次,时间为凌晨2点 18. NEXTTRUNC(SYSDATE,dd)+1+2/24 19. WITHPRIMARYKEY20. DISABLEQUERYREWRITEAS21. selectMSISDN,IMSI,IMEI,MANU_ID,MODEL_ID,UPDATE_TIMEfromAICS_DEV_INFOlink_aics;CREATE MATERIALIZED VIEW AICS_DEV_INFOpartition by hash (IMEI)( partition P1 tablespace &BISON_OTHER, partition P2 tablespace &BISON_OTHER, partition P3 tablespace &BISON_OTHER, partition P4 tablespace &BISON_OTHER, partition P5 tablespace &BISON_OTHER, partition P6 tablespace &BISON_OTHER, partition P7 tablespace &BISON_OTHER, partition P8 tablespace &BISON_OTHER)REFRESH FAST ON DEMAND -第一次刷新时间 START WITH to_date(2008-08-08 20:00:00, yyyy-mm-dd hh24:mi:ss) -刷新时间间隔。每1天刷新一次,时间为凌晨2点 NEXT TRUNC(SYSDATE,dd)+1+2/24 WITH PRIMARY KEYDISABLE QUERY REWRITE ASselect MSISDN,IMSI,IMEI,MANU_ID,MODEL_ID,UPDATE_TIME from AICS_DEV_INFOlink_aics; 5) 其他维护工作: 物化视图日志表不能删除,如果删除则目标服务器的物化视图必须重建。 物化视图不支持DDL的变更同步。但如果建立物化视图时,没有引用到源表的部分字段,则这些字段是可以更改的。 查看目标物化视图的刷新情况。select * from user_mviews;select * from user_jobs;select * from dba_jobs_running; 查看物化视图所在的基表最后被成功刷新的时间:SELECT MASTER,LOG_TABLE,CURRENT_SNAPSHOTS FROM DBA_SNAPSHOT_LOGS;四、 参考脚本 下面是创建static_info_child、dev_info两个表的物化视图的参考脚本:Sql代码 1. -1.在源表的数据库上,创建物化视图日志,指定为主键类型 2. connxxx/xxx 3. 4. defineBISON_OTHER=BISON_OTHER 5. 6. CREATEMATERIALIZEDVIEWLOGONstatic_info_child 7. tablespace&BISON_OTHER 8. WITHPRIMARYKEY; 9. 10. CREATEMATERIALIZEDVIEWLOGONdev_info 11. tablespace&BISON_OTHER 12. WITHPRIMARYKEY; 13. 14. grantselectonMLOG$_static_info_childtoaicentersupport; 15. grantselectonMLOG$_dev_infotoaicentersupport; 16. 17. 18. -2.在目标表数据库上,创建物化视图,指定为主键类型和快速刷新 19. connBISONcs/BISONcs 20. 21. defineBISONCS=BISONCS 22. defineBISONCS_OTHER=BISONCS 23. defineBISONCS_IDX=BISONCS_IDX 24. 25. -settimingon; 26. CREATEMATERIALIZEDVIEWAICS_static_info_child 27. TABLESPACE&BISONCS 28. REFRESHFAST 29. ONDEMAND 30. -第一次刷新时间STARTWITHto_date(2008-08-0820:00:00,yyyy-mm-ddhh24:mi:ss) 31. STARTWITHsysdate 32. -一天一次 33. NEXTTRUNC(SYSDATE,dd)+1+2/24 34. -每两小时一次 35. -nextTRUNC(SYSDATE,hh)+2/24 36. WITHPRIMARYKEY37. DISABLEQUERYREWRITEAS38. selectitem_id,model_param_id,attr_id,attr_name,item_value,description,supported 39. fromAICS_static_info_childBISONCS; 40. 41. 42. CREATEMATERIALIZEDVIEWAICS_DEV_INFO 43. partitionbyhash(IMEI) 44. ( 45. partitionP1tablespac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030动画电影行业发展趋势分析与未来投资战略咨询研究报告
- 快乐小区房屋租赁合同7篇
- (简单版)二手房购房合同格式8篇
- 2025年海洋生物医药产业投资机会与风险分析报告
- 2025年核工业四一七医院招聘(22人)模拟试卷及答案详解(夺冠系列)
- 2025年哈尔滨石化分公司春季高校毕业生招聘模拟试卷及答案详解(历年真题)
- 2025第二季度重庆万盛经开区创业就业和人才中心招聘1人模拟试卷及完整答案详解一套
- 2025广东医科大学附属医院第二批住院医师规范化培训学员招生19人模拟试卷附答案详解(突破训练)
- 2025安庆岳西县安徽省岳顺人力资源服务有限公司招聘26人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年吉林省特岗教师招聘考试职位表模拟试卷附答案详解(黄金题型)
- 《家具设计》课件
- 公路工程路基石方开挖破碎施工合同8篇
- 初中竞选安全部部长
- 【MOOC】人工智能原理-北京大学 中国大学慕课MOOC答案
- 喷雾干燥塔操作规程模版(3篇)
- 现代交换原理第二章
- 2024版工业润滑油销售协议范例版
- 关闸马路环境监测
- 油漆作业风险和隐患辨识、评估分级与控制措施一览表
- 手术室缩短接台时间
- 冠脉介入进修汇报
评论
0/150
提交评论