技术开发 频道

stream replication初步研究

   【IT168 技术文档】在9iR2中,oracle推出了一些令人兴奋的新功能,其中的logical standby database与stream replication在数据复制环境有着非常重要的意义,它们与advanced replication共同承担着企业环境中数据同步的重任。

    advanced replication分为多主复制(multimaster replication)与物化视图复制(materialized mview replication),它们都支持异构平台的数据复制;物化视图(materialized view replication)复制的核心是materialized mview(materialized mview log)的运用,依据业务可接受的数据延迟时间,对materialized mview制定相应的刷新作业;多主复制(multimaster replication)的核心是internal trigger+advanced queuing。

    dataguard分为物理备用库(physical standby database)与逻辑备用库(logical standby database),它们只支持同构平台;物理备用库承担数据安全及故障快速切换的功能;逻辑备用库承担数据安全以及较实时的报表服务等。

    stream replication是全新的信息共享机制,它通过advanced queuing、logminer 和 job scheduling等技术,构架集捕获、传播、应用为一体的企业数据共享通道,它支持异构平台以及不同的字符集之间的数据复制。

Stream体系结构

stream replication的处理过程主要分为三个方面:捕获(Capture)、传播(Propagate)与应用(Apply),其中捕获与传播进程处于stream replcation的源站点(source site),应用进程处于stream replication的目标站点(target site)。

图1 单源复制结构

        如图1所示,它是stream replication的单源复制结构,从捕获、传播、应用等演示了stream replication的“一对一”传播;如果将来业务发生变化,很容易将“一对一”传播结构扩展成“一对多”或“多对一”的传播结构;无论是“一对一”结构还是“一对多”结构,它们都是单源复制结构,单源复制结构的特点就是:一次捕获,多目标传播。


图2 多源复制结构

    图2所示,它是stream replication的多源复制结构,从捕获、传播、应用等演示了stream replication的“多对多”传播;在单源复制结构中,是不需要考虑“递归”传播,但在多源结构中,递归传播是必须禁止的,stream提供有消除递归传播的机制。

    捕获进程是后台进程,它依据源站点定义的捕获规则(rules),将符合捕获规则的事务及其它操作等(比如ddl操作),从redo logs(online redo log与archive redo log)中挖掘,并把获取的change vector包装成LCRs(logical change records)写入源站点的消息队列中,待“传播”进程传送到指定的目标队列中。

    传播进程作为job queue进行调度,它负责把源消息队列中的LCRs传播到目标消息队列中,它提供了“一对一”、“一对多”、“多对多”的传播方案,不仅可以在同构环境中传播消息,也支持在异构环境中传播消息。

    应用进程是后台进程,它负责从目标站点的消息队列中提取LCRs,并根据stream目标站点预定义的应用规则(rules),把符合应用规则的LCRs应用到目标数据库中;如果是“多源复制结构“,应用进程应用LCRs时,LGWR进程会为redo entry写入额外的标识,可以有效的避免递归传播。

0
相关文章