欢迎来到天天文库
浏览记录
ID:38581100
大小:105.00 KB
页数:11页
时间:2019-06-15
《oracle 高级复制与物化视图的选型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级复制与物化视图的选型一、 同步技术的选型 (一) 高级复制(AdvancedReplication)首先,从总部业务系统的业务需求出发,业务系统只需要对只读的数据进行同步和查询。 Oracle高级复制,也成为对称复制,分为多主体复制、物化试图复制和前两种的混合复制(参考图1-1,图1-2)。高级复制主要是用在对称的、等同的数据库表之间的(单向或双向)的复制,以满足分布式应用的需求。但高级复制也有一些缺点:1. 对网络的稳定性和传输速度要求比较高。2. 配置和管理稍微麻烦。 图1-1
2、MultimasterReplication 图1-2 Read-OnlyMaterializedViewReplication 下面是高级复制中的物化视图架构的创建步骤:1、检查系统初始化参数 global_names为TRUE以及job_queue_processes大于0。2、检查全局数据库名称 上述三个站点的db_domain名称应该相同,只有db_name不同。3、修改上述三个站点中的tnsnames.ora文件4、建立主体站点 建立复制管理用户repadmin;建立主体组和实体化视图组;
3、注册传播用户; 建立物化视图站点复制管理用户的代理用户; 5、设置物化视图站点1 建立物化视图管理用户mvadmin; 注册传播用户; 6、设置物化视图站点2 建立物化视图管理用户mvadmin; 注册传播用户; 7、建立主体组 创建复制组,并将复制对象添加到复制组; 生成复制支持; 8、建立物化视图日志 建立物化视图日志(主站点); 建立物化视图; 将物化视图和相关索引添加到物化视图组; 将物化视图添加到刷新组; 对于高级复制中的多主环境和
4、可更新的物化视图环境而言,它的原理是使用Oracle的InternalTrigger捕获DML及DDL操作,并将这些操作封装在RemoteProcedureCalls(RPCs)里,并借助DeferredTransactionQueue来传递RPCs并在目标数据库利用InternalTrigger执行传递过来的RPCs从而实现了数据的同步。如果仅仅是高级复制环境中的只读物化视图环境,那么Oracle这里并不会使用DeferredTransactionQueue来传递RPCs,而是直接利用解析物化视图日志的方式来实现数据的同步。 (二)
5、 物化视图(MATERIALIZEDVIEW) 1. 物化视图的种类:物化视图,根据不同的着重点可以有不同的分类1) 按刷新方式分:FAST/COMPLETE/FORCE2) 按刷新时间的不同:ONDEMAND/ONCOMMIT3) 按是否可更新:UPDATABLE/READONLY4) 按是否支持查询重写:ENABLEQUERYREWRITE/DISABLEQUERYREWRITE 物化视图有三种刷新方式:COMPLETE、FAST和FORCE。 1) 完全刷新(COM
6、PLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。2) 快速刷新(FAST)采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。3) 采用FORCE方式,Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新。 设置REFRESHONCOMMIT的物化视图不能访问远端对象。Oracle物化视图的快速刷新机制是通过物化视图日志完成的。Oracle如何通过一个物化视图日志还可以支持多个物化
7、视图的快速刷新。 还可以使用以下语句进行手动刷新:execDBMS_MVIEW.REFRESH('aics_t_dv'); 1、完全刷新execdbms_mview.refresh(list=>'aics_t_dv',method=>'c'); 2、快速刷新execdbms_mview.refresh(list=>'aics_t_dv',method=>'f'); 2. 对物化视图日志的讨论:物化视图日志表的大小跟日志表的临时存储的数据量有关。比如DEV_INFO表每天增量更新大概为300万条记录。那MLOG$日志表的大小也大概为300
8、M左右。而另外一个日志表RUPD$只是临时表,不会耗用空间。 (三) 流复制(Stre
此文档下载收益归作者所有