ORACLE Change Data Capture 介绍一(原)

一:以前的做法
  首先,我介绍一下,在使用Change Data Capture之前,我们怎么得到表有哪些数据发生了改变。
 方法一:table differencing
 SELECT * FROM old_version MINUS SELECT * FROM new_version;
 缺陷:1:必须传输所有的表的数据,2:MINUS性能损失很大。3:如果数据有多次改变,不能捕获中间过程。
 方法二:Change-value selection 
 通过上次更新时间确定有哪些数据发生了改变。
 缺陷:1:查询消耗性能较大,必须对时间字段做也许不必要的索引。2:无法捕获中间值。3:有些系统没有类似  的字段。
二:Capturing Change Data with Change Data Capture
      有两种模式:1:同步。运用trigger .2:异步。可以运用分析redolog的方式。分为HotLog, Distributed  HotLog, and AutoLog。可以运用ORACLE stream.
 Publish and Subscribe Model:
 Publisher是发布改变数据的用户。subscribers是访问改变数据的用户。
 1)Publisher可以从一下数据源得到改变的数据:
 a)The source tables   b)Redo log files(在线和归档redolog从resource database到staging database)   c)Change source(运用oracle stream)
   Publisher有以下的任务:
 a)决定有哪些数据源和表是用户所需要的。b)运用DBMS_CDC_PUBLISH 包捕获数据。c)控制访问权限。
 2)Subscribers可以从捕获的改变的数据被应用的数据库中得到数据,他们包括:
 a)Change table  b)Change set  c)Change source
   Subscribers有以下任务:
 a)运用DBMS_CDC_SUBSCRIBE包得到改变了的数据。 b)当它得到了数据时,运用DBMS_CDC_SUBSCRIBE包通知Publisher准备接受。c)运用DBMS_CDC_SUBSCRIBE包通知Publisher它已经接收完成了数据。d)用select语句从subscriber views得到数据
三:Change Sources and Modes of Change Data Capture
 1:Synchronous Change Data Capture
 SYNC_SOURCE 是唯一的同步改变资源,不能被修改和删除。
 2:Asynchronous Change Data Capture
  Asynchronous HotLog Mode
  改变的数据是从ONLINE REDOLOG中捕获,HOTLOG_SOURCE 是唯一的异步改变资源,不能被修改和删除。
2:Asynchronous Distributed HotLog Mode
  这种模式不需要定义改变数据源,Change Data Capture把不同的改变数据传输到各个不同的STAGING DATABASE,然后通过各个STAGING DATABASE中定义的publisher来定义改变数据,每一个定义了change sets。在source database和staging database 分别有两个publisher,他们通过database link通信。
3:Asynchronous AutoLog Mode
    这样模式的工作原理和DATA GUARD的工作原理类似,也可以分为传输ONLINE REDO和ARCHIVE REDO两种,
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值