在SQL Server 2012中實現CDC for Oracle

在上篇在SSIS 2012中使用CDC(數據變動捕獲)中,介紹瞭如何在SSIS 2012中使用CDC,本文在此基礎上介紹,如何經過Attunity提供的Change Data Capture Designer for Oracle實現對Oracle數據表的變動捕獲。一樣須要作一些準備工做:html

一、配置Oracle數據庫爲歸檔模式,並獲取瀏覽日誌的指定權限;sql

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

二、安裝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.msiwindows

安裝的具體方法,請參考:oracle

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

雙擊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位,那麼麻煩在後面,呵呵。spa

 

正面相對就比較簡單了,兩步便可:設計

第一步:配置 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 '1','陽頂天' from dual union all select '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-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

相關文章
相關標籤/搜索