我的位置: 首页 > 学习专区 > 数据库技术 > Streams数据同步技术

Streams数据同步技术

2013-07-16 08:25:30
来源:
[导读] Streams是从版本Oracle 9i才开始具有的数据同步功能,是为提高数据库的高可用性和数据的分发和共享功能而设计的,Streams利用高级队列技术

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

Streams数据同步大致分如下几个步骤:

1) Capture进程分析日志,生成逻辑记录LCR,将其放入一个队列中;

2) Propagation进程将LCR发送到另一个数据库中,通常是目标数据库;

3) 在目标数据库中,Apply进程将LCR应用到目标库,实现数据的同步;

该处理过程的信息流如下图:

在简单的Streams配置中,Capture进程一般位于源数据库,因此叫做Local Capture Process,Capture进程在分析日志后将生成的LCR放入队列中,由Propagation进程将LCR发送到目标库中。这样做的好处是不用在网络上传送整个的日志文件,因此可提高网络传输的效率,但这一般会给源数据库带来较大的压力,影响其性能。

另一种配置是Capture进程位于Downstream数据库中,源数据库只负责将日志文件传送(日志传输方式可为ARCH传输、LGWR同步传输和LGWR异步传输中的任何一种)到Downstream数据库中,所有的Capture操作都在Downstream数据库上完成。这种配置的好处是可以大大降低源数据库的压力,缺点是需要传输整个日志文件,对网络带宽要求较高。

Streams数据同步技术有以下优势:

1) 可支持一对多、多对一和双向复制,可用于数据分发和共享,这是DataGuard所不具备的;

2) 可灵活配置只复制数据库中的一部分对象,如可按Table复制、Schema复制,表空间复制等,并可在复制过程中对数据进行过滤和转换,使之满足不同的需要;

3) 同DataGuard一样,是Oracle内置功能,与每个Oracle新版本的新特性(如ASM)都完全兼容,且不需要额外付费;

4) 可用于异构的操作系统和数据库版本,但有一些限制;

5) 可支持非Oracle数据库和Oracle数据库之间的数据同步;

6) 目标数据库处于打开状态,可以在保持数据同步的同时执行查询等操作,分担源数据库的压力;

Streams数据同步技术有以下缺点:

1) 配置维护较复杂,需要较高的技术水平;

2) 在非Downstream复制中,对源数据库压力较大;如果使用Downstream复制,则增加了配置的复杂性且需要通过网络传输整个日志文件,对网络带宽要求较高;

3) 不能支持某些特定的数据对象和数据类型;

4) 不能保证数据的零丢失;

Oracle公司将Streams技术定位于数据的分发和共享,虽然也可用于高可用的灾难恢复场合,但Oracle推荐使用的灾难恢复技术是DataGuard。

大家都关注:
评论
热点专题
>>