没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
stream replication 初步研究
在 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 queueing。
dataguard 分为物理备用库(physical standby database)与逻辑备用库(logical standby
database),它们只支持同构平台;物理备用库承担数据安全及故障快速切换的功能;逻辑
备用库承担不仅可以做到这一些,还可以提供报表服务等。
oracle 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 的“多对多”传播;在单源复制结构中,是不需要考虑“递归”传播,但在多
源结构中,递归传播是必须禁止的。
捕获进程是后台进程,它依据源站点定义的捕获规则(rules),将符合捕获规则的事
务及其它操作等(含 ddl 与 dml),从 redo logs(online redo log 与 archive redo log)中挖
掘,并把获取的“改变”包装成 LCRs(logical change records)写入源站点的消息队列中,待
“传播”进程传送到指定的目标队列中。
传播进程作为 job queues 进行调度,它负责把源消息队列中的 LCRs 传播到目标消息队
列中,它提供了“一对一”、“一对多”、“多对一”、“多对多”的传播方案,不仅可以在同构环
境中传播消息,也支持在异构环境中传播消息。
应用进程是后台进程,它负责从目标站点的消息队列中提取 LCRs,并根据 stream
replication 目标站点预定义的应用规则(rules),把符合应用规则的 LCRs 应用到目标数
据库中;如果是“多源复制结构“,应用进程应用 LCRs 时,LGWR 进程会为 redo entry 写入
额外的标识,可以有效的避免递归传播。
Stream 与 Dataguard/Replication 的对比
dataguard 在高可用及容灾方面一般是 dba 的首选,毕竟 dataguard 在这方面存在压倒性
的优势,不管是物理备用库(physical standby database)还是逻辑备用库(logical standby
database),它们都具有一些共同的待征。所以在选择高可用方案时需要考虑如下情况:
配置和管理方面的成本:dataguard 比 stream replication 简单方便
安全与稳定方面的成本:dataguard 比 stream replication 稳定可靠
对于一个 24x7 的系统来说,这些是非常重要的,系统宕机时间的增加不仅影响着公司
的形象,还会影响公司的效益;采用 dataguard,数据的安全性相当有保障,物理备用库可
以在最短的时间完成故障切换,逻辑备用库在保障数据安全的同时,也可以承担大量的报
表等业务;由于 dataguard 的配置与管理比较简单,同理也降低了 dba 的工作强度;那什么
情况下选择使用 stream replication 呢?
局部复制 stream 可以只复制某些表或某些模式
异构环境 充分利用现有的设备与技术
远程容灾 stream 对网络的要求较 dataguard 低
stream replication 有灵活的复制策略,不仅可以配置只复制某些表,还可以配置仅复制
某些表上的 ddl 或 dml,相比 dataguard 必须整个数据库复制而言,可以节省相当的存储投
资,毕竟对于某些海量数据而言,有许多是不必要复制的。
如 果 在 异 构 环 境 , 即 不 同 的 操 作 系 统 , 那 dataguard 将 会 束 手 无 策 , 非 stream
replication 莫属,这样可以充分利用现有的环境,配置高用可方案,在异构环境,stream
replication 将会是 advanced replication 的强劲对手。
stream replication 传播的是经过 logmnr 挖掘并包装的逻辑改变记录(LCRs),相比
dataguard 传送 archived redo log、advanced replication 的 mview log 与 mview 刷新的方式,
stream replication 对网络的需求降低了很多,在远程异地容灾的过程中,租用网络带宽是一
笔较高的费用,stream replication 可以适当地降低这笔费用。
advanced replication 相对于 dataguard,缺点是:配置与管理较复杂、安全与稳定性不
够;优点:局部复制、异构环境等。advanced replication 是一种相当成熟的技术,在许多关
键系统中得到成功的运用,相对于 9iR2 推出的 stream replication 而言,双方适用的环境虽
然相当,比如都可以进行局部复制、异构复制、远程容灾等,advanced replication 目前在稳
定性与安全性方面更经得起考验。
对比 stream replication 与 advanced replication 底层的实现技术,stream replication 在实
时性、稳定性、高效率、低消耗(较少的 cpu/network 资源)等方面更有优势,但凡一些新
推出的功能,都或多或少存在一些不确定的因素。
在 10gR1 中,oracle 针对目前 stream replication 存在的弱点进行了增强,不仅提供了从
advanced replication 迁移到 stream replication 的脚本,还提供了 stream replication 的配置与
监控工具,stream replication 在配置与管理方面必将智能化、简单化,担负起与 shareplex
争夺企业数据复制市场的重任。
综上所述,oracle 在数据复制方面,dataguard、advanced replication、stream replication
都有自己的特点及独到的地方,做为 dba,用什么样的方案取决于目前的设备环境、业务
需求、将来的发展趋势以及已经成熟的技术。当然,对于已经选择的数据复制方案,技术
上必须有一定的掌握;毕竟所有的方案都不是没有问题的,即使目前较安全、稳定、便于
管理的 dataguard,也会出现一些莫明其妙的事情,所以最好做到良好的监控,预防可能存
剩余16页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 81
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功