在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.msi
D:\Tools\AttunityCDCOracle\x64\1033\AttunityOracleCdcService.msi
D:\Tools\AttunityCDCOracle\x86\1033\AttunityOracleCdcDesigner.msi
D:\Tools\AttunityCDCOracle\x86\1033\AttunityOracleCdcService.msi
安装的具体方法,请参考:
双击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 table
Create table CDCTest01
(
TCode VARCHAR2(20) primary Key,
TName VARCHAR2(500)
);
Insert into CDCTest01
select '','阳顶天' from dual
union all
select '','张三丰' 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 '','金毛狮王' from dual;
update CDCTest01 set TName='觉远' where TCode='';

SQL Server端自动生成的表:

感谢您的阅读,希望对你有所帮助!
本文参考:
http://www.attunity.com/products/attunity-cdc-ssis/oracle-cdc-for-ssis
http://www.microsoft.com/en-us/download/confirmation.aspx?id=35580
http://msdn.microsoft.com/zh-cn/library/dn175414%28v=sql.120%29.aspx
http://www.oracle.com/technetwork/topics/winx64soft-089540.html
http://technet.microsoft.com/en-us/library/ee470675%28v=sql.100%29.aspx
http://blogs.msdn.com/b/mattm/archive/2012/03/26/cdc-for-oracle-in-sql-server-2012.aspx
http://www.attunity.com/forums/microsoft-ssis-oracle-connector/error-failed-load-oci-dll-1308.html
在SQL Server 2012中实现CDC for Oracle的更多相关文章
- SQL Server 2012中Task是如何调度的?
SQL Server 2012中Task是如何调度的?[原文来自:How It Works: SQL Server 2012 Database Engine Task Scheduling] ...
- SQL Server 2012中快速插入批量数据的示例及疑惑
SQL Server 2008中SQL应用系列--目录索引 今天在做一个案例演示时,在SQL Server 2012中使用Insert语句插入1万条数据,结果遇到了一个奇怪的现象,现将过程分享出来,以 ...
- SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑
SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑 关键词:CDC 原文:http://www.cnblogs.com/chenxizhang/arc ...
- 微软BI 之SSAS 系列 - 在SQL Server 2012 中开发 Analysis Services Multidimensional Project
SQL Server 2012 中提供了开发 SSAS 项目的两种模型,一种是新增加的 Tabular Model 表格模型,另一种就是原始的 Multidimensional Model 多维模型. ...
- (数据科学学习手册28)SQL server 2012中的查询语句汇总
一.简介 数据库管理系统(DBMS)最重要的功能就是提供数据查询,即用户根据实际需求对数据进行筛选,并以特定形式进行显示.在Microsoft SQL Serve 2012 中,可以使用通用的SELE ...
- 在SQL Server 2012中新建用户
一.问题描述 在最开始装SQL Server 2012时我选择的是Windows身份认证方式,现在想添加一个用户采用SQL Server身份验证. 二.具体思路 1.新建用户 2.将新建的用户添加到相 ...
- 在SQL Server 2012中如何使用分组集
作者:Itzik Ben-Gan 翻译:张洪举 此文摘自作者的<Microsoft SQL Server 2012 T-SQL基础>. 分组集就是你据以分组的一个属性集.传统上,SQL中 ...
- SQL Server 2012中的AlwaysOn尝试
简介 SQL Server2012中新增的AlwaysOn是一个新增高可用性解决方案.在AlwaysOn之前,SQL Server已经有的高可用性和数据恢复方案,比如数据库镜像,日志传送和故障转移 ...
- SQL Server 2012 中 Update FROM子句
首先说明一下需求以及环境 创建Table1以及Table2两张表,并插入一下数据 USE AdventureWorks2012; GO IF OBJECT_ID ('dbo.Table1', 'U') ...
随机推荐
- CentOS7网络配置
*关于查看IP信息 window中是 ipconfig Linux一般都是 ifconfig 不过CentOS7中 这个命令发生了更改 :ip addr 设置网络 再新建虚拟机向导过程中,有一步[网 ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...
- Hadoop生态系统如何选择搭建
Apache Hadoop项目的目前版本(2.0版)含有以下模块: Hadoop通用模块:支持其他Hadoop模块的通用工具集. Hadoop分布式文件系统(HDFS):支持对应用数据高吞吐量访问的分 ...
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...
- iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤
打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入 lipo ...
- Ajax请求利用jsonp实现跨域
跨域: js有一个同源限制,简单说来源不一样的话就无法相互间交互.那么怎么算来源不一样呢, 举个例子:浏览器访问-->服务器A--->得到页面A---页面A中的js脚本只能访问服务器A的资 ...
- 开发Eclipse自定义控件
摘自:http://www.ibm.com/developerworks/cn/opensource/os-eclipcntl/ 我们在开发自定义控件时主要考虑以下问题: 1. 自定义控件的绘制:通常 ...
- I am back-电商网站开发&jQuery
hi 之前有将近两周的时间没有更新,除了懒就是其他的事情耽误了.现在好了,回家了,虽然家里停水,外面又有积雪,天寒地冻的,但诸多不便,都比不过有点闲的好. 开搞每个学PHP的必经之路——电商网站的开发 ...
- Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法
Navicat for MySQL连接MYSQL
- PHPstudy和ecshop的安装和使用
PHPstudy和ecshop: phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装, ...