oracle cdc ssis,AttunityOracleCDC.pdf

AttunityOracleCDC.pdf

如何使用CDC 对Oracle 数据进行导入

SSIS 介绍

我们知道,对于Oracle 里的数据,我们可以使用SSIS 来把数据导入到SQL Server 中,SSIS 开发相

当的简单。下面是一个开发的例子。

1. Oracle 数据库服务器服务器为 OSERVER.CONTOSO.COM,下面是TNSNAMES.ORA 配置文件:

2. 我们在另外一台服务器BI2012 上,安装SQL Server 2012 ,并安装Oracle 客户端以及

Runtime: 【注意,这里要装32 位的客户端以及runtime,因为开发环境Visual Studio 是

32 位应用】,实际应用可以使用64 位客户端/runtime 。

3. 在BI2012 这台服务器上,运行SQL Server Data Tools 工具,这个工具其实就是Visual Studio

开发环境。是SQL Server 2012 自带的工具。

4. 我们新建一个项目,取名为OracleSSIS,类型是Integration Services Project,如下图所示:

5. 随后,我们创建一个针对Oracle 的OLE DB Source :并且设定连接如下连接属性:

6. 点击OK,然后下拉,选择我们需要从Oracle 获取的表,这里,选择HR.EMPLOYEES 这张

表格。 【先确认Oracle 能成功连接】

7. 随后,建立一个OLEDB Destination,并把源和目的连接起来。

8. 在SQL Server 的数据库上,建立一个表,表名为EMP,类型如下:

9. 双击之前的OLEDB DESTINATION,设定目的为SQL Server:

10. 并选定目的表为EMP:

11. 并且设定好Oracle 表和SQL 表的列(Column)映射关系:

12. 一个很简单的SSIS 流程就定义好了。

13. 我们运行该流程,会显示107 行数据传送完毕。

14. 我们在SQL Server 端,进行查询,能发现这些数据已经完全导入:

15. 在真正的生产环境中,我们可以通过SQL Server Agent, 设定运行时间,在晚上的时候,运

行该流程。

增量传输

SSIS 运行速度很快。根据benchmark 的测试结果,半个小时能导入1T 数据。通常是在凌晨的时候

运行。不会对业务有造成影响。但是有些客户可能还是希望只获取增量的数据,而不是每次重新

导入数据。针对这种需求,

1. 我们可以使用SSIS 里的Incremental Loads,具体可参考以下文档:

/articles/Integration+Services+(SSIS)/76395/

实施IncrementalLoads 需要对SSIS 的流程进行一定的开发工作,需要检测到哪些行是增加的,哪

些行是变化的,哪些行是删除的。

2. 如果数据源是SQL Server 的话,我们可以使用日志传输模式。日志传输的原理如下。每隔

一段时间,从主服务器上,对数据库做日志备份,然后拷贝到副服务器上,并对数据库做

日志恢复操作。副服务器上的数据库会处于RESTORING/Standby 状态。

日志传输的设定非常简单,只需要点选设定即可,再需要提供一个共享目录,用来存放增

量日志备份。然后目的数据库定期从该共享目录获取增量日志备份,在目的数据库上做恢

复。

设定好以后,副数据库上,数据库会处于Standby/Read-Only 状态。数据库只读不能写。

随后,我们即可在这个副本数据库上,进行数据的读取工作。【注意,当副本数据库在做

日志恢复的时刻,数据库是不可读的。我们需要避免日志恢复点上,对副本数据库进行读

操作】

3. 针对Oracle 数据库,我们可以使用SQL Server 2012 自带的Attunity Oracle CDC

Attunity Oracle CDC 运行机制如下图所示:

a. 首先对这两个软件进行安装

b. 运行Chance Data Capture Service Configuration for Oracle by Attunity

c. 选择“Prepare SQL Server”,连接进入BI2012 数据库服务器,自动做准备工作。

d. 选择New Service,配置一个CDC 服务,我们命名为OracleCDC

e. 服务创建成功:

f. 运行Change Data Captur

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值