您当前的位置:首页 > 学习专区 > 数据库技术

Streams数据同步技术

时间:2017-04-19 17:12:51    作者:严老师

  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。

推荐资讯
UI设计师
UI设计师
JAVA软件工程师课程
JAVA软件工程师课程
.NET软件工程师课程
.NET软件工程师课程
软件开发工程师课程
软件开发工程师课程
相关文章
    无相关信息
栏目更新
栏目热门