实现Oracle+数据库向其他数据库的数据同步.docxVIP

实现Oracle+数据库向其他数据库的数据同步.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现Oracle数据库向其他数据库的数据同步

使用 PDI 和 Oracle CDC 来实现Oracle 数据库向其他数据库的数据同步作者:佚名??出处:中国自学编程网收集整理 ??发布日期:2008-07-04 ?本文讲述如何利用 Oracle CDC 和 PDI 来实现 Oracle 数据库向其他数据源的数据同步。第一节介绍Oracle CDC,如果您熟悉 Oracle CDC 可以跳过该节。第二节说明如何配置 PDI 里的 Oracle CDC 输入和 Oracle CDC 输出插件。第一节 Oracle CDC 介绍(本节主要内容摘自 OWB 用户手册)发布和订阅模型大多数 CDC 系统都需有人来完成数据的捕获和发布,这个人就是发布者。同时也有多个应用程序或人来访问发布的数据,这些应用程序或个人就是订阅者。 CDC 提供了 PL/SQL 包来完成发布和订阅任务。发布者:发布者通常是数据库的DBA, 他创建和维护包括了 CDC 系统的模式对象,发布者要和两个数据库进行交互源数据库(source database):即生产系统数据库,里面包含了需要发布的数据,相关的表称为源表。中间数据库(staging database)中间数据库是实际完成数据捕获的数据。依赖于发布者使用的捕获方式,中间数据库可以是源数据库也可以不是源数据库。中间数据库中保存下面的 CDC 对象。变更表(change table):变更表是一个关系表,包含了源表中变化的数据。对于发布者而言,变更表就是数据发布。变更集(change set)变更集是一组变更的数据,它们用来保证事务的一致性,包含一个或多个变更表。变更源(change source)变更源是对源数据库的一种逻辑表示,它包括一个或多个变更集。发布者需要完成的任务包括:决定哪些源数据库和表是订阅者关心的,以及要使用的 CDC 的模式(同步或异步)使用Oracle 提供的包 DBMS_CDC_PUBLISH 从源表中建立 CDC 系统通过 GRANT 和 REVOKE 这样的SQL 语句来管理订阅者访问变更表的权限(不过访问者不会直接访问变更表,而是访问视图)。订阅者:订阅者是已经发布的并更数据的用户,订阅者需要完成下面的任务:1. 使用Oracle 提供的包 DBMS_CDC_SUBSCRIBE 来完成创建订阅:通知CDC准备接收变更的数据:通知CDC 完成一组变更数据:2. 使用 SELECT 语句从订阅者视图中抽取变化的数据。变更源和数据捕获模型同步模式:同步模式使用源数据库触发器来捕获变更的数据。这种方式是实时的没有延迟。当 DML 操作提交后,变更表中就产生了变更数据。同步模式会给源数据库增加负载,但和数据表比较的方式相比,同步模式可以减少系统负载。同步变更源 SYNC_SOURCE 是唯一的、预定义的,它代表了源数据库。不能更改和删除。在同步模式下,变更表必须存在于源数据库本地。异步模式:异步模式使用数据库的重做日志(redo log)文件,在源数据库发生变更以后,才进行数据捕获。异步模式依赖于源数据库的补充日志(supplemental logging)的级别。补充日志会给源数据库增添了负载,所以要小心使用异步CDC 模式。有两种方式来捕获异步变更数据,分别是HotLog和AutoLog:HotLog:HotLog是从源数据库的重做日志文件中获得变更的数据。这种方式会有一段时间延迟。HotLog变更源 HOTLOG_SOURCE 也是唯一的、预定义的,它代表了源数据库的重做日志文件。不能更改和删除。在HotLog模式下,变更表必须存在于源数据库本地。AutoLog:AutoLog是从日志转移服务(Log transport services)管理的一组重做日志文件中获得变更数据。日志转移服务将重做日志文件自动地从源数据库转移到中间数据库。通过使用数据库初始化参数,发布者可以配置日志转移服务使其能够自动的从源数据库将重做日志文件转移到中间数据库。在中间数据库中,当来了新的重做日志文件,就可以获取到新的变更数据。因此延迟程度取决于重做日志文件的转移频率。没有预定义的AutoLog 变更源。发布者提供源数据库信息来创建一个AutoLog 数据源。在HotLog模式下,变更表可以保存在源数据库本地或远程,一般都是保存在远程。变更集:一个变更集是一组变更的数据,它作为一个整体来管理,可以保证事务的一致性。一个变更集只属于一个变更源。一个变更源可以包括多个变更集。从概念上将,变更集和变更源的模式应该相同,也就是说,AutoLog模式的变更集是属于AutoLog变更源的。当一个发布者将两个或更多的变更表放在同一个变更集中,订阅者可以连接变更集里表而且要保证事务的一致性。三种模式的变更集:同步:在预定义好的变更源 SYNC_SOURCE 中,发

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档