Oracle数据同步方案

2017/12/15 18:35
阅读数 1.1W

 

正确的决策源自于及时有效的信息。越早针对业务事件做出行动反应,其业务价值也越大的基本思想,决定了数据同步的重要性。同时,数据同步也是数据库容灾系统的核心部分。那么我们今天就来谈谈Oracle数据同步有哪些实现方法,相互之间有哪些差异。

Oracle 数据库的数据同步技术可以分为两类,一是采用Oracle数据库内部的机制来实现的;另外一种是采用相关软件来实现的,包括Oracle产品和第三方厂商 产品,如Oracle自身的GoldenGate和已经被DELL收购的Quest。这里主要对基于Oracle自身的内部机制和产品的数据同步的各种技 术加以介绍,并做简单对比。

1、Job+DBLink
Oracle中实现数据同步的技术很 多,Job + DBLink的方式是比较原始的一种,同时也是实现2个数据库连接的简单方式,可实现同步和定时刷新。当两个库做非实时数据同步时,DBLink是个不错 的选择,例如:在库A中有t_user表,在库B中有t_history_user表,业务要求将每天产生在库A中的数据都同步到库B中的 t_history_user表中。此时可以通过DBLink在以job调度相关过程实现。

这是一种较为原始的方法,当前已经不再鼓励使用这种方式了。

2、物化视图(Materialized View)
Materialized View(物化视图)是包括一个查询结果的数据库对像, 它是远程数据的的本地副本, 或者用来生成基于数据表求和的汇总表. 物化视图存储基于远程表的数据, 也可以称为快照.。物化视图可以用来同步数据,一般采用主键同步或者是ROWID同步。通过使用物化视图+ Job 的方式可以实现双向的表同步。

物化视图有增量刷新和完全刷新两种模式,都是非实时的数据同步。

3、DataGuard

DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步。

DataGuard 数据同步技术的优势主要在于它是Oracle数据自身内置的功能,与每个Oracle新版本都完全兼容,且不需要另外付费;其配置管理也较为简单,不需要 熟悉其他第三方的软件产品,便于DBA的运维管理。当然,DataGuard也存在一些不足,比如它对于网络传输的带宽要求较高,并且备库是以只读方式打 开,也不支持异构环境,需要相同的操作系统版本和数据库版本。

DataGuard技术是Oracle推荐的用于高可用灾难恢复环境的数据同步技术。

4、高级复制((Advanced Replication)
Oracle高级复制,也称为对称复制,第一次是在Oracle7.1.6中出现的,主要是为了应对在分布式数据库系统的多个数据库中复制和维护数据库对象的需求。我们可以利用高级复制实现内外网数据的同步,保证每个节点的数据保持一致。
 
Oracle高级复制虽然功能强大,但是配置管理较复杂,且对源数据库性能影响较大,从Oracle10g后已经逐步被Streams所替代,而Streams后来又渐渐被GoldenGate所取代。

5、Streams
Streams 是从版本Oracle 9i才开始具有的数据同步功能,是为提高数据库的高可用性和数据的分发和共享功能而设计的,Streams利用高级队列技术,通过用LogMiner挖掘 日志文件生成变更的逻辑记录,然后将这些变更应用到目标数据库上,从而实现数据库之间或一个数据库内部的数据同步。

Streams支持一 对多,多对一和双向同步,可用于数据分发和共享(和OGG类似),这是DataGuard所不具备的。同时Streams也是Oracle内置功能,不需 要额外付费,同时其配置方式也比较灵活。但是Streams跟高级复制一样也存在配置维护复杂,而且对源数据库压力较大,对网络带宽要求也较高,还不能保 证数据的零丢失。

在Oracle收购了GoldenGate之后,由于其可以跨平台,跨数据库。且性能更优于Streams,Streams也被边缘化了,面临高级复制的命运,只提供支持,不再开发。

6、GoldenGate
GoldenGate 于2009年被Oracle收购之后,GoldenGate软件被集成到到Oracle“融合(Fusion)”中间件中,与Oracle数据库更紧密地 集成。GoldenGate可以用于多种不同的操作系统平台(Unix、Linux、Windows)和多种不同数据库系统(如Oracle、SQL Server、MySQL、DB2等)之间的数据同步,是极优秀的数据集成产品。

GoldenGate是Oracle在数据迁移和数据同步方面要重点发展的产品,功能强大,可以跨平台,跨数据库。应用场景很多:可以做数据库同步; 容灾备份; 实现读写分离,实时数据库仓库供给,负载均衡等等。

相 比DataGuard传输整个日志文件相比,GoldenGate传输的数据量大大降低;同时,目标数据库是出于Open状态,所占系统资源较少,对网络 带宽要求更低;与Streams相比,GoldenGate也支持一对多,多对一,双向复制等,不说支持异构平台,GoldenGate的性能较之 Streams更为卓越,抗压性强,不管数据量多少,GoldenGate都是远高于Streams方式的。

GoldenGate 重要性日益增强,是Oracle战略上高层次的产品,这点上DataGuard也无法与之相较。但尽管如此,GoldenGate但也不会取代 DataGuard,二者定位不同。事实上,ataGuard已经很成熟,但也在不断发展,二者都有广阔的发展空间。

7、CDC

8、logical standby
 

9、Database Change Notification   

     https://blog.csdn.net/jwd001/article/details/6858218

     https://docs.oracle.com/database/121/JJDBC/dbchgnf.htm#JJDBC28820

     https://docs.oracle.com/cd/E24693_01/appdev.11203/e17125/adfns_cqn.htm

     https://docs.oracle.com/cd/B19306_01/B14251_01/adfns_dcn.htm

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部