Oracle Stream 深入探讨

论坛 期权论坛     
选择匿名的用户   2021-5-30 01:52   333   0
一、Oracle 高可用性(high Availability)的几种技术架构
<br>
<span style="white-space:pre"></span>从oracle9i开始,出现在oracle高可用性上的几种技术架构分别是:
<br> 1)
<span style="white-space:pre"> </span>高级复制(Advanced Replication)
<br> 2)
<span style="white-space:pre"> </span>数据保护(Data Guard)Oracle Standby Database
<br> 3)
<span style="white-space:pre"> </span>RAC(Oracle Real Application Clusters)
<br> 4)
<span style="white-space:pre"> </span>Oracle Parallel Server
<br> 5)
<span style="white-space:pre"> </span>Oracle Server HA
<br> 6)
<span style="white-space:pre"> </span>Oracle 流(Oracle Stream)
<br> 7)
<span style="white-space:pre"> </span>MV/RMAN/Log Miner/Flashback query
<br>
<br>
<br> 其中Oracle Stream在9iR2中开始提供,在10gR1和R2中得到很大的强化和扩展。从oracle的技术路线中可以看出,Stream将会是Oracle以后主推的一个技术热点,因为Stream有以下的优势。
<br> A.
<span style="white-space:pre"> </span>实现的技术框架较高级复制(advanced Replication)更先进,不是基于数据库级的触发器,而是采用对日志(Redo Log)的挖掘能力。
<br> B.
<span style="white-space:pre"> </span>对数据库资源利用比较少,这个特性在10g支持DownStream后更明显。
<br> C.
<span style="white-space:pre"> </span>远程备份,特别是Internet级的远程备份成为可能。
<br> D.
<span style="white-space:pre"> </span>由于Stream的Capture可以是Table/Rule/Database三种级别,使得Stream可以扩展出很多应用出来。甚至作为一个ETL的可选方案,也是非常不错的。
<br> E.
<span style="white-space:pre"> </span>当采用Table级的Stream时,可在rule上配置应用的DDL和DML,比起Data guard必须全库同步,就有了很大的优势。(其实Data Guard的logical standby Database在底层的实现技术细节上和Real-Time DownStream是非常相似的)
<br>
<br>
<br> Oracle Stream可能派生出来的应用。
<br> A.
<span style="white-space:pre"> </span>最传统的应用,当然是作为远程的数据库备机。Stream的高效、实时、低耗的特点非常适用于这种应用。唯一不足的是其稳定性比起Standby Database来说还是要差一些,但作为Oracle主推的技术来说,我们可以看到在每一个Release版本中都有很大的改进。
<br> B.
<span style="white-space:pre"> </span>在Slave Database上,可以将应用系统的查询、统计、报表等非写操作移植过来,以分担Master机器的性能。
<br> C.
<span style="white-space:pre"> </span>将应用分布到多个数据库中。这种应用中,Master Database负责基础数据的读写数据库(例如机构信息、人员信息等各个业务都需要的数据),通过Stream Database将数据实时同步到多个Slave Database上,每个Slave Database上进行其它业务的数据读写操作。
<br> D.
<span style="white-space:pre"> </span>ETL过程,将数据从业务数据库上迁移到ODS上。
<br> 二、Simple Oracle Stream
<br>
<span style="white-space:pre"></span>Simple Oracle Stream 是在9iR2中开始提供的技术,在10g中,其性能、配置、稳定性等得到很大的提高。
<br> 1.Simple Oracle Stream的框架
<br>
<span style="white-space:pre"></span>整体框架如下图所示:
<br>  
<img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-ea198d69ee5622d245b17c93837f1810.JPG">
<br>
<span style="white-space:pre"></span>Stream过程包括三个主要的环节,如图所示
<br>  
<img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-d0c1bba165fc3b9959d7187282e88890.JPG">
<br>
<span style="white-space:pre"> </span>Capture:是指对数据库的DDL 和DML的变化捕获的环节。
<br>
<span style="white-space:pre"> </span>Staging:数据准备过程,这个环境还包括了一个重要的过程,Propagation数据传播过程。
<br>
<span style="white-space:pre"> </span>Consumption:数据消费过程。
<br> Capture过程
<br>
<p>Capture过程的底层原理如图所示。</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-896e73e0b90623dab25af0bebe18279b.JPG"><br> </p>  
<br> 用户提交的数据变化应用到数据库对象上,同时引起了Redo Log的变化(首先是Online Redo Log,对于归档模式运行的数据库,随后这些变化写入Archived Redo Log中。),然后Capture 进程捕获重做日志的变化,形成LCR记录,进入到高级队列(AQ)对象中。
<br> Staging 过程和Propagation过程
<br>
<span style="white-space:pre"></span>LCR记录进入AQ后,其实就完成了Staging的过程,更为重要的是Propagation传播过程。
<br>  
<img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8bfc6bb87a274addcaf39b802dbb06dd.JPG">
<br>
<span style="white-space:pre"></span>Propagation过程其实就是从源高级队列到目标高级队列的
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP