在上篇在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
新聞熱點
疑難解答