首页 > 数据库 > SQL Server > 正文

在SQL Server 2012中实现CDC for Oracle

2024-08-31 00:55:48
字体:
来源:转载
供稿:网友
在SQL Server 2012中实现CDC for Oracle

在上篇在SSIS 2012中使用CDC(数据变更捕获)中,介绍了如何在SSIS 2012中使用CDC,本文在此基础上介绍,如何通过Attunity提供的Change Data Capture Designer for Oracle实现对Oracle数据表的变更捕获。同样需要做一些准备工作:

1、配置Oracle数据库为归档模式,并获取浏览日志的指定权限;

/* -- ============================================= -- 修改Oracle属性---Generate By downmoon(邀月),3w@live.cn -- ============================================= */ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;ALTER DATABASE ARCHIVELOG;

2、安装CDC Service Configuration and Designer 两个控制台。

在SQL Server的安装源/Tools/AttunityCDCOracle/x64/1033下有两个安装文件,32位对应的路径为X86,1033为英语,2052为简体中文。D:/Tools/AttunityCDCOracle/x64/1033/AttunityOracleCdcDesigner.msiD:/Tools/AttunityCDCOracle/x64/1033/AttunityOracleCdcService.msiD:/Tools/AttunityCDCOracle/x86/1033/AttunityOracleCdcDesigner.msiD:/Tools/AttunityCDCOracle/x86/1033/AttunityOracleCdcService.msi

安装的具体方法,请参考:

http://social.technet.microsoft.com/wiki/contents/articles/7647.installing-microsoft-sql-server-2012-change-data-capture-for-oracle-by-attunity.aspx

双击MSI即可安装,默认安装路径,64位在这里:C:/PRogram Files/Change Data Capture for Oracle by Attunity

如果没有安装源,可以在官网下载:http://www.microsoft.com/en-us/download/details.aspx?id=35580

邀月工作室

注意:如果您的SQL Server 2012是64位,必须选择64位安装源,而如果你用的Oracle客户端是32位,那么麻烦在后面,呵呵。

正面相对就比较简单了,两步即可:

第一步:配置 CDC for Oracle 服务

在开始-Attunity Change Data Capture for Oracle>CDC Service Configuration,打开服务配置控制台:

prepare 一个本地的SQL Server实例,用于记录远程Oracle表的变化,如果你没有先Prepare数据库,系统会相当人性化的给出提示,完成后也是如此。

邀月工作室

邀月工作室

邀月工作室

配置服务比较简单,最终如下图,注意:最后一行的Master Key用于加密存储的Oracle凭证。

邀月工作室

至此,第一步服务配置完成,简单,是不?

第二步:设计 CDC for Oracle

在开始-Attunity Change Data Capture for Oracle>CDC Designer Configuration,打开设计配置控制台:

创建一个新实例,首先创建一个CDC Database名称为Oracle_CDC,这个位于SQL Server端,运行它即可。

下来,连接Oracle Source

邀月工作室

出现上述情况,是因为我别的应用程序需要安装了一个Oracle 32位客户端,于是,悲剧出现了。

补救措施:安装一个绿色的Oracle 64位客户端:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

下载,直接解压即可,本文中的Path路径有两个:

E:/Ora11/product/11.2.0/dbhome_1/bin;(Path路径中原32位客户端安装版路径)E:/Ora11/Client12;E:/Ora11/product/11.2.0/dbhome_1/bin;(Path路径中现64位客户端绿色版路径,修改后)

然后重新在上述界面“Test connection”,成功!

邀月工作室

你可以提前在Oracle中新建一个表,用于测试:

/* -- ============================================= -- 修改Oracle属性---Generate By downmoon(邀月),3w@live.cn -- ============================================= */-- Create tableCreate table CDCTest01(  TCode  VARCHAR2(20) primary Key,  TName  VARCHAR2(500));Insert into CDCTest01select '1','阳顶天' from dualunion allselect '2','张三丰' from dual;

创建后,你可以在后面一步,选中要捕获的表:

邀月工作室

执行关于表的一些必要操作:

邀月工作室

如果你没有做本文前的准备工作,将会收到如下错误:

邀月工作室

补救措施后,如下:

邀月工作室

下一步,设计完成。

你可以试着启动一下这个windows服务,十之八九第一次会收到这个错误:

邀月工作室

其实,这是因为本机配置的64位客户端在注册表中存错了位置,修改为64位绿色客户端位置即可,原值为32位安装版的路径。

[HKEY_LOCAL_MACHINE/SOFTWARE/Oracle]"Oracle_Home"="E://Ora11//Client12"

修改后无需重启,重新Start服务,OK

邀月工作室

我们添加两个语句测试一下:

/* -- ============================================= -- 创建测试数据---Generate By downmoon(邀月),3w@live.cn -- ============================================= */Insert into CDCTest01 select '3','金毛狮王' from dual;update CDCTest01 set TName='觉远' where TCode='1';

邀月工作室

SQL Server端自动生成的表:

邀月工作室

感谢您的阅读,希望对你有所帮助!

本文参考:

http://www.attunity.com/products/attunity-cdc-ssis/oracle-cdc-for-ssishttp://www.microsoft.com/en-us/download/confirmation.aspx?id=35580http://msdn.microsoft.com/zh-cn/library/dn175414%28v=sql.120%29.aspxhttp://www.oracle.com/technetwork/topics/winx64soft-089540.htmlhttp://technet.microsoft.com/en-us/library/ee470675%28v=sql.100%29.aspxhttp://blogs.msdn.com/b/mattm/archive/2012/03/26/cdc-for-oracle-in-sql-server-2012.aspxhttp://www.attunity.com/forums/microsoft-ssis-oracle-connector/error-failed-load-oci-dll-1308.html


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表