日期:2014-05-16  浏览次数:20660 次

Oracle高级复制数据调研报告





   Oracle同步复制数据调研报告










                关成龙
                时间:2010-2-9


使用场景描述:
已有一台数据库服务器在运行,为了不影响现有数据库的使用,需要新启一台数据库服务器,把原有数据库的数据以及后期可能产生的新数据做完整的数据同步。

调研结果:
Oracle与Oracle数据库之间的整体数据库复制可以实现。主要分为两大类:一类为Asynchronous Replication(异步复制);另一类为Synchronous Replication(同步复制)。我个人认为使用异步复制中的“物化视图复制站点”较好,并且成功的实现了物化视图复制站点的操作。
三、 整体数据库复制概述
1. Replication 使用分布式数据库技术在多个站点之间共享数据。
2. Replicated Database 和Distributed Database 并不一样,在分布式数据库系统中数据在
多个站点同时有效,但是一个表只会存在于一个站点中,而对于Replication 来说相同
的数据将同时存在于多个站点中。
3. 使用 replication 的原因:
1) Availability:也就是提供了优秀的failover 保护
2) Performance:由于有多个server,所以可以将用户业务分布在不同的server 上
3) Disconnected computing:实体化视图允许用户在和master 断开后使用数据库
的子集,在重新连接上master 之后再进行两者的同步。
4) Network load reduction:由于有多个server,所以可以减少master 的网络请

5) Mass deployment:通过变量产生自定义的实体化视图以满足多种需求
4. 在不同的 Oracle 发行版本之间以及不同操作系统的Oracle 之间都可以使用Advanced
Replication。
5. Replication 中的几个概念:
1) replication object:复制对象,指需要作复制的对象(object),包括表,索引,
存储过程等等。复制对象的更新遵循事务一致性规则(transactionally consistent
manner)。
2) replication groups:复制组,是复制对象(replication object)的集合称为group,
oracle 以replication group 的形式来管理复制。一个组可以包含多个模式的object,
一个模式也可以有多个组中的object,但是每个replication object 都只能属于一个
replication group。
3) replication sites:复制站点,包含两种类型,主体站点(master sites)和实
体化视图站点(materialized view sites)。一个site 可以担任一个replication
group 中的mater site 同时又担任另外一个replication group 中的materialized
view site,注意必须是另外一个组,而不能是同一个replication group。
4) scheduled links:一个数据库链接(database link),包含一个由用户定义的计划,
来将需要更新的事务推到其它的master sites,当创建scheduled link 的时候,oracle
将在本地任务队列中创建一个任务。
5) master definition site:主体定义站点,大部分的高级复制配置都需要在一个站
点上作,这个站点就是maserdef site。
6. Replication 环境的几种类型
1) Multimaster Replication
2) Materialized View Replication(也可以称为是Single Master Replication)
3) Multimaster and Materialized View Hybrid Configurations
Multimaster Replication 和Materialized View Replication 的区别在于:
前者必须是全表复制而后者可以是 master 表的一部分
前者允许在每一个 transaction 之后都进行复制,而后者是属于批处理复制
两者都使用 scheduled links 进行数据同步操作。
Materialized View Replication 中的materialized view 可能有以下几种类型:
1) Read-Only Materialized Views:只读的实体化视图
2) Updatable Materialized Views:允许更新,同时允许将更新复制到master site
3) Writeable Materialized Views:允许更新,但是每次refresh 的时候,更新都会丢

7. 介绍 Multimaster Replication 中的复制方式
1) Asynchronous replication
在一个master 上发生的变化将在推后的时间内更新到其他的master 上
2) Synchronous replication
在一个master 上发生的变化将立刻更新到其他的master 上
3) Procedural replication
必须给每个site 上的包都生成一个wrapper,所有的数据变化应该通过包中的存储
过程完成,当某个master 上的procedure 被调用,wapper 将保证其他site 中的存
储过程也被调用(同步或者不同步)。将大量的数据操作放到一个procedure 中,
然后对于procedure 的调用将被同步,用处在于在于有大数据量操作的时候可以减
少网络负载。
四、 MR 的概念和构架
MR 是Master Replication,也就是主体站点复制的概念,是高级复制区别于普通复制的一个
重要的功能。本章节对于MR 中出现的种种概念作详细解释。
MR 分为single master 和multi master 两种。single master 指一个master site 支持多个
materialized view site,而multi master 则包含多个master site。
Multimaster Replication 也被称为peer-to-peer 或者n-way replication,任何一个master
上发生的变化都将被送到其它的master 上。
1. 为什么使用 Multimaster Replication。
Failover:当主数据库发生问题的时候,可以通过配置Oracle Net 来实现automatic
connect-time failover,需要将客户端的tnsnames.ora 中的FAILOVER_MODE 参数设置
为ON。同时在主数据库正常的时候,其它的master site 仍然可以作为一个具有完全功
能的数据库来支持其它业务,比如报表等。
Load Balancing::提供读动态平衡以及更本地化的数据存取。
2. 比较 RAC(Oracle Real Application Clusters)和Advanced Replication
Load Balancing::高级复制提供读动态平衡,而RAC 则提供读写动态平衡。因为每一
次写操作都会在所有的replication site 上体现,所以高级复制不能提供写动态平衡。
Survivability::高级复制提供更加强有力的灾难恢复功能,因为高级复制环境中的各
个si