oracle 数据同步 流复制,Oracle数据库流复制技术研究

1.引言Oracle流(OracleStreams)复制技术是一种新的数据库复制技术。通过数据流能够实现数据库内部及数据库之间的事件及数据的共享。Oracle流是增强数据库的可用性、实现分布式数据库以及建立容灾备份系统的理想技术解决方案。通过OracleStreams技术的使用,数据库管理员能够定义捕捉哪些事件或数据,同时利用配置参来数控制数据流,并将有关的信息路由、传递到目的数据库。流复制策略具有非常高的灵活性,可以在较低带宽的分布式环境下,实现数据的同步与复制,并且还能够部署实施在异构环境下。2.流复制技术原理Oracle流复制技术的框架很灵活,可如图1所示,其由三个基本的元素组成:消费、存储、捕获。图1流复制架构Streams技术原理是利用读取数据库日志技术,在Oracle的日志里提取出数据,接着将数据传递至目标数据库里进行处理,把源数据库的数据复制到目标数据库。该复制过程共有三个步骤:捕获(capture),传播(propagation),以及应用(apply)三个步骤,通过高级队列(advancequeue)把该三个步骤的数据统一起来,利用定义的不同规则(rule),实施对需要复制数据的控制。(1)捕获捕获进程(captureprocess),可以捕获到schema、table甚至所有的数据库的修改情况。这些修改情况均会被记录至到数据库的重做日志中。在重做日志中,捕获进程捕获所修改的情况,然和把它格式化成LCR(logicalchangerecord,逻辑变更记录)的样式。捕获哪些消息,将由规则来进行明确,称该消息为Capturedmessages。(2)存储当捕获事件以后,就将其放入至存储区域里。存储区域采用的是队列的样式,其能够为管理及存储捕获事件提供服务。首先需将数据库表的修改格式化称LCR,再存储到存储区中,直到有订阅者消费它们。捕获进程把消息放入ANYDATA队列,该队列可以存储各种不同类型的消息。同样,应用程序及用户也能够把消息放入至该ANYDATA队列里,或者指定类型的队列,其中,指定类型的队列仅可存储相同类型的消息.(3)传递Streamspropagations进程可以把消息自一个队列传递至另一个队列里,该队列能存在于相同的数据库里,也能存在于不同数据库里,而究竟传递哪些消息,则也是由规则来进行明确。(4)消费一旦消息从队列中出栈则就被消费。应用过程(applyprocess)非显式的把消息出栈,而应用程序、用户或是消息客户端则显式的把消息出栈。而目标数据库(destinationdatabase),就是指的是消费消息数据库,源数据库与目标数据库能是同一个数据库。按照这种样式,流复制就通过捕获,存储,传递,消费等进程,把DDL及DML从源数据库传递到目的数据库,以实现数据的同步,其工作原理如图2所示。图2流复制工作原理3.流复制关键技术3.1.捕获进程捕获进程主要担负了流配置结构中第一阶段的工作。该进程对日志中的DDL和DML记录进行检查重做,依据捕获进程的规则集实施记录的核查。规则则是为了确定用户希望从重做日志中捕获哪些变更事件,继而设置的数据库对象。依据规则集,该捕获进程可以解析适合的变更,同时将其变换为LCR,再把LCR加至队列里去。Oracle流的一个明显的特征就是对于基于日志变更捕获的支持。在重做日志文件里,直接捕获变更能够在最大程度上降低源系统的间接费。基于日志的捕获,让表的变更能够存入日志文件里,确保发生存储媒体故障或损害时可以及时地恢复。3.2.传播进程捕获进程把其捕获的LCR存放于队列表当中,而队列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值